Kommandot sed i Linux är en kraftfull strömredigerare som låter dig utföra grundläggande texttransformationer på en indataström (en fil eller indata från en pipeline). Det används ofta för att söka, hitta och ersätta, infoga och ta bort text i filer. Till skillnad från enkla textredigerare, bearbetar sed data i en pipeline och är särskilt användbart för att automatisera textmanipulationer i skalskript.
Nyckelfunktioner hos sed inkluderar förmågan att:
- Ersätt text i en fil med reguljära uttryck.
- Ta bort rader baserat på specifika mönster.
- Infoga eller lägg till text på specifika rader.
- Omvandla eller konvertera text baserat på komplexa mönster.
Den här guiden ger exempel för att demonstrera den praktiska användningen av kommandot sed i Linux, och visar hur det kan användas för olika textbearbetningsuppgifter.
Nyckelsyntax och alternativ för Sed-kommandot
Innan du går in i exempel är det viktigt att förstå den primära syntaxen för sed-kommandot:
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
Här är några vanliga alternativ:
- -e: Tillåter användning av flera kommandon.
- -n: Undertrycker standardbeteendet vid utskrift av varje rad.
- -i: Redigerar filer på plats (var försiktig när den modifierar originalfilen).
Grundläggande exempel på Sed Command i Linux
Grundläggande textersättning
En av de vanligaste användningsområdena för sed är att ersätta text.
echo "Welcome to Linux" | sed 's/Linux/Unix/'
Produktion:
Welcome to Unix
Global substitution
Som standard ersätter sed den första förekomsten på en rad. För att ersätta alla förekomster, använd "g"-flaggan.
echo "Apples are better than apples" | sed 's/apples/oranges/g'
Produktion:
Apples are better than oranges
Radering
sed kan också ta bort linjer baserat på ett specifikt mönster.
echo -e "apple\norange\nbanana" | sed '/orange/d'
Produktion:
apple
banana
Infoga och lägga till text
Du kan introducera nya textrader antingen före eller efter en mönstermatchning.
echo "Hello" | sed 'i\Good Morning'
Produktion:
Good Morning
Hello
Ändra text skiftläge
Med sed kan du manipulera skiftläge med hjälp av y-funktionen. Låt oss se ett exempel på att konvertera gemener till versaler:
echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
Produktion:
HELLO WORLD
Avancerad användning av Sed-kommandot i Linux
Textersättning med flera mönster
För flera mönster kan du använda -e för att kedja olika ersättningskommandon.
echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'
Produktion:
Welcome to Unix. I adore Linux.
Villkorlig textersättning
Med sed är det möjligt att ersätta text baserat på vissa villkor med hjälp av adresser.
echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'
Produktion:
apple
banana - favorite fruit
cherry
Använda Sed med reguljära uttryck
Utnyttja kraften i reguljära uttryck för att matcha komplexa mönster.
echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'
Produktion:
Price is $100 (USD)
Bakre referenser för komplexa ersättningar
Bakåtreferenser kan användas för att hänvisa tillbaka till delar av det matchade mönstret.
echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'
Produktion:
The cat white and dog black
Redigera på plats med alternativet -i
En av de kraftfulla funktionerna i sed är möjligheten att redigera filer direkt. Detta kan uppnås med alternativet -i, men säkerhetskopiera alltid den ursprungliga filen innan du gör några direkta ändringar.
echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt
Produktion:
Modified text
Slutsats
Att förstå och behärska sed-kommandot kan avsevärt förbättra din förmåga att manipulera och bearbeta textfiler i Linux. Genom att öva på exemplen som tillhandahålls kan du lära dig hur du effektivt hanterar vanliga textbearbetningsuppgifter, automatiserar repetitiva redigeringsjobb och införlivar sed i ditt skriptarbetsflöde. Att regelbundet experimentera med olika sed-alternativ och kommandon kommer att fördjupa din kunskap och göra det möjligt för dig att utnyttja dess fulla potential. Njut av mångsidigheten och kraften som sed tillför dina Linux-textbearbetningsuppgifter.