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.