sed parancs Linux alatt példákkal

A Linux sed parancsa egy hatékony adatfolyam-szerkesztő, amely lehetővé teszi az alapvető szövegátalakítások végrehajtását egy bemeneti adatfolyamon (fájlon vagy csővezetékről származó bemeneten). Széles körben használják a fájlok keresésére, megtalálására és cseréjére, beszúrására és törlésére. Az egyszerű szövegszerkesztőkkel ellentétben a sed folyamatban dolgozza fel az adatokat, és különösen hasznos a shell szkriptekben végzett szövegmanipulációk automatizálására.

A sed főbb jellemzői a következők:

  • Szöveg helyettesítése a fájlban reguláris kifejezésekkel.
  • Törölje a vonalakat meghatározott minták alapján.
  • Szöveg beszúrása vagy hozzáfűzése adott sorokhoz.
  • Szöveg átalakítása vagy konvertálása összetett minták alapján.

Ez az útmutató példákat ad a sed parancs Linux alatti gyakorlati használatának bemutatására, bemutatva, hogyan használható különféle szövegfeldolgozási feladatokhoz.

A Sed parancs kulcsszintaxisa és beállításai

Mielőtt belemerülne a példákba, létfontosságú, hogy megértse a sed parancs elsődleges szintaxisát:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

Íme néhány gyakran használt lehetőség:

  • -e: Több parancs használatát teszi lehetővé.
  • -n: Minden sor kinyomtatásakor elnyomja az alapértelmezett viselkedést.
  • -i: Helyben szerkeszti a fájlokat (legyen óvatos, mert módosítja az eredeti fájlt).

Alapvető példák a Sed parancsra Linuxban

Alapszöveg helyettesítés

A sed egyik leggyakoribb felhasználási módja a szöveg cseréje.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

Kimenet:

Welcome to Unix

Globális helyettesítés

Alapértelmezés szerint a sed a sor első előfordulását helyettesíti. Az összes előfordulás lecseréléséhez használja a „g” jelzőt.

echo "Apples are better than apples" | sed 's/apples/oranges/g'

Kimenet:

Apples are better than oranges

Sor törlése

A sed egy adott minta alapján is eltávolíthatja a vonalakat.

echo -e "apple\norange\nbanana" | sed '/orange/d'

Kimenet:

apple
banana

Szöveg beszúrása és hozzáfűzése

Új szövegsorokat vezethet be a mintaegyeztetés előtt vagy után.

echo "Hello" | sed 'i\Good Morning'

Kimenet:

Good Morning
Hello

Kis- és nagybetűk módosítása

A sed használatával az y függvény segítségével módosíthatja a kis- és nagybetűket. Nézzünk egy példát a kisbetűk nagybetűssé alakítására:

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

Kimenet:

HELLO WORLD

A Sed parancs speciális használata Linuxban

Több mintás szöveghelyettesítés

Több minta esetén használhatja az -e-t a különféle helyettesítési parancsok láncolásához.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

Kimenet:

Welcome to Unix. I adore Linux.

Feltételes szövegcsere

A sed esetén lehetséges a szöveg bizonyos feltételek alapján címekkel történő cseréje.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

Kimenet:

apple
banana - favorite fruit
cherry

Sed használata reguláris kifejezésekkel

Használja ki a reguláris kifejezések erejét az összetett minták összehangolására.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

Kimenet:

Price is $100 (USD)

Hátsó hivatkozások a komplex cserékhez

A visszautalások felhasználhatók az illesztett minta egyes részeire való visszautalásra.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

Kimenet:

The cat white and dog black

Helyi szerkesztés az -i opcióval

A sed egyik hatékony funkciója a fájlok közvetlen szerkesztésének lehetősége. Ez elérhető a -i kapcsolóval, de mindig készítsen biztonsági másolatot az eredeti fájlról, mielőtt bármilyen közvetlen módosítást végezne.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

Kimenet:

Modified text

Következtetés

A sed parancs megértése és elsajátítása jelentősen javíthatja a szövegfájlok kezelésének és feldolgozásának képességét Linux alatt. A bemutatott példák gyakorlásával megtanulhatja, hogyan kezelheti hatékonyan a gyakori szövegfeldolgozási feladatokat, hogyan automatizálhatja az ismétlődő szerkesztési feladatokat, és hogyan építheti be a sed-et a szkriptelési munkafolyamatba. A különféle sed opciókkal és parancsokkal való rendszeres kísérletezés elmélyíti tudását, és lehetővé teszi a benne rejlő lehetőségek teljes kihasználását. Élvezze a sed által a Linux szövegfeldolgozási feladataihoz nyújtott sokoldalúságot és teljesítményt.

Joshua James

Szólj hozzá!