sed Kommando i Linux med eksempler

Sed-kommandoen i Linux er en kraftfuld stream-editor, der giver dig mulighed for at udføre grundlæggende teksttransformationer på en input-stream (en fil eller input fra en pipeline). Det er meget brugt til at søge, finde og erstatte, indsætte og slette tekst i filer. I modsætning til simple teksteditorer behandler sed data i en pipeline og er især nyttig til at automatisere tekstmanipulationer i shell-scripts.

Nøglefunktioner ved sed inkluderer evnen til at:

  • Erstat tekst i en fil ved hjælp af regulære udtryk.
  • Slet linjer baseret på specifikke mønstre.
  • Indsæt eller tilføj tekst til bestemte linjer.
  • Transform eller konverter tekst baseret på komplekse mønstre.

Denne guide vil give eksempler til at demonstrere den praktiske brug af sed-kommandoen i Linux, og vise hvordan den kan bruges til forskellige tekstbehandlingsopgaver.

Nøglesyntaks og indstillinger for Sed-kommandoen

Før du dykker ned i eksempler, er det vigtigt at forstå den primære syntaks for sed-kommandoen:

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

Her er et par almindeligt anvendte muligheder:

  • -e: Tillader brug af flere kommandoer.
  • -n: Undertrykker standardadfærden ved udskrivning af hver linje.
  • -i: Redigerer filer på plads (vær forsigtig, da det ændrer den originale fil).

Grundlæggende eksempler på Sed Command i Linux

Grundlæggende teksterstatning

En af de mest almindelige anvendelser af sed er at erstatte tekst.

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

Produktion:

Welcome to Unix

Global Substitution

Som standard erstatter sed den første forekomst i en linje. Brug 'g'-flaget for at erstatte alle forekomster.

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

Produktion:

Apples are better than oranges

Linje sletning

sed kan også fjerne linjer baseret på et specifikt mønster.

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

Produktion:

apple
banana

Indsættelse og tilføjelse af tekst

Du kan introducere nye tekstlinjer enten før eller efter et mønstermatch.

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

Produktion:

Good Morning
Hello

Ændring af store og små bogstaver

Med sed kan du manipulere tekstens store og små bogstaver ved at bruge y-funktionen. Lad os se et eksempel på at konvertere små bogstaver til store bogstaver:

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

Produktion:

HELLO WORLD

Avanceret brug af Sed-kommandoen i Linux

Teksterstatning med flere mønstre

For flere mønstre kan du bruge -e til at sammenkæde forskellige substitutionskommandoer.

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

Produktion:

Welcome to Unix. I adore Linux.

Betinget teksterstatning

Med sed er det muligt at erstatte tekst baseret på visse betingelser ved hjælp af adresser.

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

Produktion:

apple
banana - favorite fruit
cherry

Brug af Sed med regulære udtryk

Udnyt styrken i regulære udtryk til at matche komplekse mønstre.

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

Produktion:

Price is $100 (USD)

Tilbage-referencer for komplekse udskiftninger

Tilbage-referencer kan bruges til at henvise tilbage til dele af det matchede mønster.

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

Produktion:

The cat white and dog black

Redigering på stedet med -i-indstillingen

En af de kraftfulde funktioner i sed er evnen til at redigere filer direkte. Dette kan opnås ved at bruge -i-indstillingen, men sikkerhedskopier altid den originale fil, før du foretager nogen direkte ændringer.

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

Produktion:

Modified text

Konklusion

At forstå og mestre sed-kommandoen kan forbedre din evne til at manipulere og behandle tekstfiler i Linux markant. Ved at øve de angivne eksempler kan du lære, hvordan du effektivt håndterer almindelige tekstbehandlingsopgaver, automatiserer gentagne redigeringsjob og inkorporerer sed i din scripting-workflow. Regelmæssigt at eksperimentere med forskellige sed-indstillinger og kommandoer vil uddybe din viden og gøre dig i stand til at udnytte dets fulde potentiale. Nyd den alsidighed og kraft, som sed bringer til dine Linux-tekstbehandlingsopgaver.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar