Sökning och ersättning av text

Bash:
Sökning och ersättning av text

Hur gör man:

# Sök och ersätt första förekomsten av "gammalt" med "nytt" i filen.txt
sed 's/gammalt/nytt/' filen.txt

# Sök och ersätt alla förekomster av "äpple" med "päron" i filen.txt
sed 's/äpple/päron/g' filen.txt

# Sök och ersätt text med backup av originalfilen
sed -i.bak 's/Windows/Linux/g' filen.txt

# Sök och ersätt i flera filer med loop
for f in *.txt; do
  sed -i 's/fotboll/ishockey/g' "$f"
done

Exempel utdata: sed kommandot ändrar texten i filerna och den modifierade texten visas om inte -i (in-place) flaggan används.

Djupdykning:

Sök och ersätt funktionaliteten är grundläggande i Unix-liknande system och går tillbaka till tidiga textredigeringsverktyg som ed och ex. sed, som står för stream editor, blev en utvidgning av dessa verktyg med fokus på textflöden (pipes). Alternativ inkluderar moderna verktyg som awk för mer komplex bearbetning eller programmeringsspråk som Python för skriptning. I sed, står s för substitute (ersätt) och g för global (över hela filen). Användning av -i flaggan skapar en ny fil med ändringarna och kan kombineras med en extension (t.ex., .bak) för att spara en backup av originalfilen.

Se också: