sed Kommando i Linux med exempel

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.

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)

Lämna en kommentar