Pikaopas sed komentoja Linuxissa

Johdatus Linux sed -komentoon

Linux-käyttöjärjestelmä käyttää terminaalin komentoja tietokoneen tiedostojärjestelmän kanssa. Linux- komennon ensisijainen käyttö, joka on lyhyt stream-editori, on muuttaa jokaisen tiedoston tai virran rivin korvaamalla rivin tietyt osat. Se tekee perustekstistä muutoksia tiedostoksi tai syötteeksi putkesta. Oletetaan esimerkiksi, että sinulla on tiedosto nimeltä "songs.text", joka sisältää nämä rivit:

1, Justin Timberlake, nimike 545, hinta 6,30 dollaria 2, Taylor Swift, nimike 723, hinta 7,90 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 4, Lady Gaga, nimike 118, hinta 6,30 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 6, Elvis Presley, osasto 335, hinta 6,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria

Tekstivaihtelujen tekeminen sed

Jos haluat muuttaa kaikki hintatiedot 6,30 - 7,30 dollaria, voit tehdä muutokset käyttämällä sed-komentoa tällä tavalla:

sed 's / 6.30 / 7.30 /' songs.txt> songs2.txt

Tämä koodi tekee muutoksen ja kirjoittaa muutetun tiedoston "songs2.txt". Tulostiedosto sisältää:

1, Justin Timberlake, osasto 545, hinta 7,30 dollaria 2, Taylor Swift, nimike 723, hinta 7,90 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 4, Lady Gaga, nimike 118, hinta 7,30 dollaria 5, Johnny Cash, osasto 482, hinta 6,50 dollaria 6, Elvis Presley, osasto 335, hinta 7,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria

Jos haluat korvata kaikki tapahtumat "Cash" -kohdassa "Roskakori", käytät:

sed / cash / roskakori / "songs.txt" songs2.txt

joka luo sisällön sisältävän tiedoston:

1, Justin Timberlake, nimike 545, hinta 7,30 dollaria 2, Taylor Swift, nimike 723, hinta 7,90 dollaria 3, Mick Jagger, osasto 610, hinta 7,90 dollaria 4, Lady Gaga, nimike 118, hinta 7,30 dollaria 5, Johnny Trash, 482, hinta 6,50 dollaria 6, Elvis Presley, osasto 335, hinta 7,30 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria

Suodatus Sed-komennolla

Sed on myös usein suodattaa rivit tiedostossa tai virrassa. Jos haluat esimerkiksi nähdä rivit, jotka sisältävät "John", käytät:

sed -n '/ john / p' songs.txt> johns.txt

joka kirjoittaa seuraavat rivit tiedostoon johns.txt:

5, Johnny Trash, osasto 482, hinta 6,50 dollaria 7, John Lennon, osasto 271, hinta 7,90 dollaria