Tekstin etsiminen ja korvaaminen

Bash:
Tekstin etsiminen ja korvaaminen

How to: (Kuinka tehdä:)

# Etsi ja korvaa kertakäyttöisesti tiedostossa käyttäen sed-komentoa
sed 's/vanha/uusi/g' tiedosto.txt

# In-place korvaaminen (tiedosto muuttuu)
sed -i 's/vanha/uusi/g' tiedosto.txt

# Etsi kaikki esiintymät hakemistosta rekursiivisesti ja korvaa ne käyttäen grep ja sed
grep -rl 'vanha' ./hakemisto/ | xargs sed -i 's/vanha/uusi/g'

Esimerkki tuloste:

$ echo "Hei maailma" | sed 's/maailma/world/'
Hei world

Deep Dive (Syväsukellus)

Tekstin etsiminen ja korvaaminen on vanha konsepti, joka on ollut tietokoneohjelmoinnissa jo sen alkuaikoina. Se perustuu säännöllisiin lausekkeisiin (regular expressions, regex), jotka mahdollistavat monimutkaistenkin kuvioiden löytämisen teksteistä. Vaihtoehtoina ovat modernit työkalut kuten ack, ag, tai rg (ripgrep), jotka ovat nopeampia ja monipuolisempia. Sed-komennon (‘stream editor’) toteutus yksinkertaisille korvauksille on yksi Unix-pohjaisten järjestelmien vanhimpia työkaluja ja se käyttää suoraviivaista luku-, korvaus- ja tulostusprosessia.

See Also (Katso Myös)