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.