Seuraava tulostus osoittaa, että GNU Sed versio 4.4 on asennettu järjestelmään.
Syntaksi:
sed [vaihtoehtoja]...[käsikirjoitus] [tiedosto]
Jos 'sed' -komennolla ei ole tiedostonimeä, komentosarja toimii vakiotulotiedoilla. `` Sed '' -skripti voidaan suorittaa ilman vaihtoehtoja.
Sisältö :
- Perustekstin korvaaminen käyttämällä 'sed'
- Korvaa kaikki tekstin esiintymät tietyllä tiedoston rivillä käyttämällä g -vaihtoehtoa
- Korvaa vain ottelun toinen esiintyminen kullakin rivillä
- Korvaa vain ottelun viimeinen esiintyminen kullakin rivillä
- Korvaa tiedoston ensimmäinen ottelu uudella tekstillä
- Korvaa tiedoston viimeinen ottelu uudella tekstillä
- Kääntöviivan poistaminen korvauskomennoista tiedostojen polkujen haun ja korvaamisen hallitsemiseksi
- Korvaa kaikki tiedostot koko polulla vain tiedostonimellä ei hakemistoa
- Korvaa teksti, mutta vain, jos merkkijonosta löytyy jotain muuta tekstiä
- Korvaa teksti, mutta vain jos jotakin muuta tekstiä ei löydy merkkijonosta
- Lisää merkkijono ennen vastaavan kuvion jälkeen käyttämällä ' 1 ''
- Poista vastaavat rivit
- Poista vastaava rivi ja 2 riviä vastaavan rivin jälkeen
- Poista kaikki rivit tekstirivin lopussa
- Poista kaikki rivit, joilla on täsmäys kaksi kertaa
- Poista kaikki rivit, joilla on ainoa välilyönti
- Poista kaikki tulostamattomat merkit
- Jos rivillä on täsmäys, lisää jotain rivin loppuun
- Jos rivin lisäysrivillä on ottelu ennen ottelua
- Jos rivin lisäysrivillä on ottelu ottelun jälkeen
- Jos vastaavuutta ei löydy, lisää jotain rivin loppuun
- Jos vastaavuutta ei ole, poista rivi
- Kopioi osuva teksti sen jälkeen, kun tekstin jälkeen on lisätty välilyönti
- Korvaa yksi merkkijonoluetteloista uudella merkkijonolla
- Korvaa vastaava merkkijono merkkijonolla, joka sisältää uudet rivit
- Poista rivit tiedostosta ja lisää pilkku jokaisen rivin loppuun
- Poista pilkut ja lisää uudet rivit jakaaksesi tekstin useille riveille
- Etsi kirjainkoolla merkityksetön ottelu ja poista rivi
- Etsi kirjainkoolla erottamaton ottelu ja korvaa se uudella tekstillä
- Etsi kirjainkoolla merkityksetön vastaavuus ja korvaa kaikki saman tekstin isoilla kirjaimilla
- Etsi kirjainkoolla merkityksetön vastaavuus ja korvaa kaikki saman tekstin pienillä kirjaimilla
- Korvaa tekstissä kaikki isot merkit pienillä kirjaimilla
- Etsi numero riviltä ja liitä valuuttasymboli numeron perään
- Lisää pilkkuja numeroihin, joissa on yli 3 numeroa
- Korvaa sarkainmerkit 4 välilyönnillä
- Korvaa 4 peräkkäistä välilyöntiä sarkainmerkillä
- Katkaise kaikki rivit 80 ensimmäiseen merkkiin
- Etsi merkkijonon säännöllinen lauseke ja liitä sen jälkeen vakioteksti
- Etsi merkkijonon säännöllinen lauseke ja toinen kopio löydetystä merkkijonosta sen jälkeen
- Monirivisten 'sed' -komentosarjojen suorittaminen tiedostosta
- Yhdistä monirivinen kuvio ja korvaa se uudella monirivisellä tekstillä
- Korvaa kahden sanan järjestys, jotka vastaavat mallia
- Käytä useita sed-komentoja komentoriviltä
- Yhdistä sed muiden komentojen kanssa
- Lisää tyhjä rivi tiedostoon
- Poista kaikki aakkosnumeeriset merkit tiedoston jokaiselta riviltä.
- Käytä merkkijonoa & -merkinnällä
- Vaihda sanaparia
- Kirjoita jokaisen sanan ensimmäinen merkki isolla
- Tulosta tiedoston rivinumerot
1. Perustekstin korvaaminen 'sed': llä
Mitä tahansa tiettyä tekstin osaa voidaan hakea ja korvata käyttämällä hakua ja kuvion korvaamista komennolla 'sed'. Seuraavassa esimerkissä 's' tarkoittaa haku- ja korvaustehtävää. Sana 'Bash' haetaan tekstistä, Bash Scripting Language ja jos sana on tekstissä, se korvataan sanalla 'Perl'.
$heitti pois 'Bash -skriptikieli' | sed 's/Bash/Perl/'
Lähtö:
Sana 'Bash' on tekstissä. Tulos on siis 'Perl Scripting Language'.
'sed' -komentoa voidaan käyttää myös minkä tahansa tiedoston sisällön korvaamiseen. Luo tekstitiedosto nimeltä weekday.txt seuraavan sisällön kanssa.
weekday.txt
maanantaitiistai
keskiviikko
torstai
perjantai
Lauantai
sunnuntai
Seuraava komento etsii ja korvaa tekstin 'sunnuntai' tekstillä 'sunnuntai on loma'.
$kissaweekday.txt$sed 's/sunnuntai/sunnuntai on loma/'weekday.txt
Lähtö:
Sunnuntai on olemassa arkipäivä.txt -tiedostossa, ja tämä sana korvataan tekstillä 'sunnuntai on loma' edellä mainitun 'sed' -komennon suorittamisen jälkeen.
2. Korvaa kaikki tekstin esiintymät tietyllä tiedoston rivillä käyttämällä g -vaihtoehtoa
'G' -vaihtoehtoa käytetään 'sed' -komennossa korvaamaan kaikki vastaavan kuvion esiintymät. Luo tekstitiedosto nimeltä python.txt seuraavalla sisällöllä tietääksesi g -vaihtoehdon käytön. Tämä tiedosto sisältää sanan. 'Python' useita kertoja.
python.txt
Python on erittäin suosittu kieli.
Python on helppokäyttöinen. Python on helppo oppia.
Python on alustojen välinen kieli
Seuraava komento korvaa kaikki esiintymät Python 'Tiedoston toisella rivillä, python.txt . Tässä, 'Python' esiintyy kaksi kertaa toisella rivillä.
$ kissa python.txt$ sed'2 s / Python / perl / g'python.txt
Lähtö:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tässä kaikki 'Python' esiintyminen toisella rivillä korvataan 'Perl'.
3. Korvaa vastaavuuden toinen esiintyminen kullakin rivillä
Jos jokin sana esiintyy tiedostossa useita kertoja, sanan tietty esiintyminen jokaisella rivillä voidaan korvata komennolla 'sed' esiintymänumerolla. Seuraava komento 'sed' korvaa hakumallin toisen esiintymän tiedoston jokaisella rivillä, python.txt .
$ sed's/Python/perl/g2'python.txtLähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Tässä etsittävä teksti, Python ' näkyy vain toisella rivillä kaksi kertaa ja se korvataan tekstillä, ' Perl ’.
4. Korvaa vain ottelun viimeinen esiintyminen kullakin rivillä
Luo tekstitiedosto nimeltä lang.txt seuraavan sisällön kanssa.
lang.txt
Bash -ohjelmointikieli. Python -ohjelmointikieli. Perl -ohjelmointikieli.
Hyperteksti -merkintäkieli.
Laajennettava merkintäkieli.
5. Korvaa tiedoston ensimmäinen ottelu uudella tekstillä
Seuraava komento korvaa vain hakukuvion ensimmäisen osuman, ' Python 'Tekstin mukaan, ’Perl ’. Tässä, '1' käytetään vastaamaan kuvion ensimmäistä esiintymää.
$ kissa python.txt$ sed'1 s / Python / perl /'python.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Tässä. ensimmäinen 'Python' esiintyy ensimmäisellä rivillä korvataan 'perl'.
6. Korvaa tiedoston viimeinen ottelu uudella tekstillä
Seuraava komento korvaa hakukuvion viimeisen esiintymän, ’Python 'Tekstin mukaan, 'Lyödä'. Tässä, '$' symbolia käytetään vastaamaan kuvion viimeistä esiintymää.
$ kissa python.txt$ mutta -e'$ s / Python / Bash /'python.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
7. Kääntöviivan poistaminen korvauskomennoista haun hallintaan ja tiedostopolkujen korvaamiseen
Tiedoston polun käänteinen vinoviiva on poistettava etsimistä ja korvaamista varten. Seuraava komento 'sed' lisää vinoviivan () tiedostopolkuun.
$heitti pois /Koti/ubuntu/koodi/perl/add.pl| sed 's; /; \ /; g'Lähtö:
Tiedoston polku, '/Home/ubuntu/code/perl/add.pl' on syötettynä 'sed' -komennossa ja seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
8. Korvaa kaikki tiedostot koko polulla vain tiedostonimellä no directory
Tiedostonimi voidaan noutaa tiedostopolusta erittäin helposti käyttämällä ` basename ' komento. 'sed' -komentoa voidaan käyttää myös tiedostonimen noutamiseen tiedostopolusta. Seuraava komento hakee tiedostonimen vain 'echo' -komennon antamasta tiedostopolusta.
$heitti pois '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Tässä tiedostonimi, myfile.txt ' tulostetaan tulosteena.
9. Korvaa teksti, mutta vain jos merkkijonosta löytyy jotain muuta tekstiä
Luo tiedosto nimeltä ' dept.txt ” seuraavalla sisällöllä korvaamaan muuhun tekstiin perustuva teksti.
dept.txt
Luettelo opiskelijoista yhteensä:
CSE - CountEEE - Count
Siviili - kreivi
Seuraavassa 'sed' -komennossa käytetään kahta korvauskomentoa. Tässä teksti, ' Kreivi 'Korvataan 100 rivillä, joka sisältää tekstin, 'CSE 'Ja teksti' Kreivi' korvataan 70 rivillä, joka sisältää hakukuvion, ' EEE ” .
$kissadept.txt$sed -Ja '/CSE/s/Count/100/; /EEE/s/Count/70/; ''dept.txt
Lähtö:
Seuraava tulos tulee näkyviin, kun yllä olevat komennot on suoritettu.
10. Korvaa teksti, mutta vain jos jotakin muuta tekstiä ei löydy merkkijonosta
Seuraava 'sed' -komento korvaa 'Count' -arvon rivillä, joka ei sisällä tekstiä 'CSE'. dept.txt tiedosto sisältää kaksi riviä, jotka eivät sisällä tekstiä 'CSE'. Joten ' Kreivi 'Teksti korvataan kahdella rivillä 80: llä.
$kissadept.txt$sed -i -Ja '/CSE/! s/Count/80/; ''dept.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
11. Lisää merkkijono ennen vastaavaa mallia ja sen jälkeen käyttämällä ' 1'
'Sed' -komennon vastaavien kuvioiden järjestystä merkitään ' 1', ' 2' ja niin edelleen. Seuraava 'sed' -komento etsii mallia, 'Bash', ja jos kuvio vastaa, se saa käsiksi ' 1' tekstin korvaavan osan. Tässä tekstiä 'Bash' etsitään syöttötekstissä ja yksi teksti lisätään ennen ja toinen teksti lisätään ' 1': n jälkeen.
$heitti pois 'Bash -kieli' | sed 's/ (Bash )/Opi 1 ohjelmointi/'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Tässä, ' Oppia' teksti lisätään ennen 'Lyödä' ja ' ohjelmointi 'Teksti lisätään' Lyödä'.
12. Poista vastaavat rivit
'D' -vaihtoehtoa käytetään komennossa 'sed', jos haluat poistaa minkä tahansa rivin tiedostosta. Luo tiedosto nimeltä os.txt ja lisää seuraava sisältö testataksesi sen toimintaa 'D' vaihtoehto.
kissa os.txt
WindowsLinux
Android
SINÄ
Seuraava 'sed' -komento poistaa kyseiset rivit os.txt tiedosto, joka sisältää tekstin 'OS'.
$kissaos.txt$sed '/D'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
13. Poista vastaava rivi ja 2 riviä vastaavan rivin jälkeen
Seuraava komento poistaa kolme riviä tiedostosta os.txt jos malli, ' Linux ' on löydetty. os.txt sisältää tekstin, 'Linux ’Toisella rivillä. Tämä rivi ja seuraavat kaksi riviä poistetaan.
$sed ' / Linux /, + 2d'os.txtLähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
14. Poista kaikki rivit tekstirivin lopussa
Käyttämällä [:tyhjä:] luokan avulla voidaan poistaa välilyöntejä ja välilehtiä tekstistä tai minkä tahansa tiedoston sisällöstä. Seuraava komento poistaa välilyönnit tiedoston jokaisen rivin lopussa, os.txt.
$kissaos.txt$sed 's/[[: blank:]]*$ //'os.txt
Lähtö:
os.txt sisältää tyhjät rivit jokaisen rivin jälkeen, jotka poistetaan yllä olevalla komennolla 'sed'.
15. Poista kaikki rivit, joilla on täsmäys kaksi kertaa
Luo tekstitiedosto nimeltä input.txt seuraavalla sisällöllä ja poista hakukuvion sisältävän tiedoston rivit kaksi kertaa.
input.txt
PHP on palvelinpuolen skriptikieli.
PHP on avoimen lähdekoodin kieli ja PHP erottaa kirjaimet.
PHP on alustasta riippumaton.
PHP -teksti sisältää kaksi kertaa tiedoston toisella rivillä, input.txt . Tässä esimerkissä käytetään kahta 'sed' -komentoa poistamaan rivit, jotka sisältävät kuvion ' php ' kaksi kertaa. Ensimmäinen komento 'sed' korvaa 'php': n toisen esiintymisen jokaisella rivillä ' dl 'Ja lähetä tulos toiseen' sed '-komentoon syötteenä. Toinen komento 'sed' poistaa rivit, jotka sisältävät tekstiä, ' dl ’.
$kissainput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Lähtö:
input.txt tiedostossa on kaksi riviä, jotka sisältävät kuvion, 'Php' kaksi kertaa. Joten seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
16. Poista kaikki rivit, joissa on vain välilyöntiä
Valitse mikä tahansa tiedosto, jonka sisällössä on tyhjiä rivejä testataksesi tätä esimerkkiä. input.txt tiedosto, joka on luotu edellisessä esimerkissä, sisältää kaksi tyhjää riviä, jotka voidaan poistaa seuraavan 'sed' -komennon avulla. Tässä '^$' käytetään selvittämään tiedoston tyhjät rivit, input.txt.
$kissainput.txt$sed '/^$/d'input.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
17. Poista kaikki tulostamattomat merkit
Tulostamattomat merkit voidaan poistaa mistä tahansa tekstistä korvaamalla ei-tulostettavat merkit millään. [: print:] -luokkaa käytetään tässä esimerkissä tulostamattomien merkkien selvittämiseen. ' T' on tulostamaton merkki, eikä sitä voida jäsentää suoraan 'echo' -komennolla. Tätä varten ' t' -merkki määritetään muuttujassa $ -välilehti, jota käytetään 'echo' -komennossa. 'Echo' -komennon tulos lähetetään komennolla 'sed', joka poistaa merkin ' t' tulostuksesta.
$välilehti= $' t'$heitti pois 'Hei$ tabWorld''
$heitti pois 'Hei$ tabWorld'' | sed 's/[^[: print:]] // g'
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Ensimmäinen `echo -komento tulostaa tuloksen välilehdellä ja` sed '-komento tulostaa tuloksen, kun välilehti on poistettu.
18. Jos rivillä on ottelu, lisää jotain rivin loppuun
Seuraava komento lisää ”10” rivin loppuun, joka sisältää tekstin ”Windows” os.txt tiedosto.
$kissaos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Lähtö:
Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen.
19. Jos rivillä on täsmäys, lisää rivi tekstin eteen
Seuraava komento 'sed' etsii tekstiä, ' PHP on alustasta riippumaton ” kohdassa input.txt tiedosto, joka on luotu aiemmin. Jos tiedosto sisältää tämän tekstin millä tahansa rivillä, PHP on tulkittu kieli ” lisätään kyseisen rivin eteen.
$kissainput.txt$sed '/PHP on alustasta riippumaton/s/^/PHP on tulkittu kieli. N/'input.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
20. Jos rivillä on täsmäys, lisää rivi sen jälkeen
Seuraava komento 'sed' etsii tekstiä, ' Linux ' tiedostossa os.txt ja jos teksti on jossakin rivissä, uusi teksti, ' Ubuntu 'Lisätään tämän rivin jälkeen.
$kissaos.txt$sed 's/Linux/& nUbuntu/'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
21. Jos ottelua ei ole, liitä jotain rivin loppuun
Seuraava 'sed' -komento etsii näitä rivejä os.txt joka ei sisällä tekstiä, 'Linux' ja liitä teksti ' Käyttöjärjestelmä ’Jokaisen rivin lopussa. Tässä, ' $ -Merkkiä käytetään tunnistamaan rivi, johon uusi teksti liitetään.
$kissaos.txt$sed '/Linux/! S/$/Käyttöjärjestelmä/'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Os.txt -tiedostossa on kolme riviä, jotka eivät sisällä tekstiä, 'Linux' ja näiden rivien loppuun lisätyt uudet tekstit.
22. Jos vastaavuutta ei löydy, poista rivi
Luo tiedosto nimeltä web.txt ja lisää seuraava sisältö ja poista rivit, jotka eivät sisällä vastaavaa mallia. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Seuraava 'sed' -komento etsii ja poistaa ne rivit, jotka eivät sisällä tekstiä 'CSS'. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Lähtö: Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Tiedostossa on yksi rivi, joka sisältää tekstin 'CSE'. Tulos sisältää siis vain yhden rivin.
23. Kopioi osuva teksti sen jälkeen, kun tekstin jälkeen on lisätty välilyönti
Seuraava `` sed '' -komento etsii tiedostosta sanan 'to', python.txt ja jos sana on olemassa, sama sana lisätään hakusanan perään lisäämällä välilyöntiä. Tässä, '&' -symbolia käytetään liittämään päällekkäinen teksti.
$kissapython.txt$sed -Ja 's / to / & to / g'python.txt
Lähtö:
Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Tässä tiedostosta etsitään sanaa 'to', python.txt ja tämä sana on tämän tiedoston toisella rivillä. Niin, ’Kohteeseen Välilyönti lisätään vastaavan tekstin perään.
24. Korvaa yksi merkkijonoluettelo uudella merkkijonolla
Sinun on luotava kaksi luettelotiedostoa tämän esimerkin testaamiseksi. Luo tekstitiedosto nimeltä list1.txt ja lisää seuraava sisältö.
kissaluettelo1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Luo tekstitiedosto nimeltä list2.txt ja lisää seuraava sisältö.
$ cat list2.txt
1001CSE GPA3.631002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3.84
Seuraava `` sed '' -komento vastaa edellä esitettyjen kahden tekstitiedoston ensimmäistä saraketta ja korvaa vastaavan tekstin tiedoston kolmannen sarakkeen arvolla list1.txt.
$kissalist1.txt$kissalist2.txt
$sed ``kissalist1.txt| awk '{print' -e with / '$ 1' / '$ 3' / '}'``<<<'''kissalista2.txt'''
Lähtö:
1001, 1023 ja 1067 list1.txt tiedosto vastaa tiedostoa list2.txt tiedosto ja nämä arvot korvataan vastaavilla nimillä list1.txt .
25. Korvaa vastaava merkkijono merkkijonolla, joka sisältää uudet rivit
Seuraava komento ottaa syötteen echo -komennosta ja etsii sanasta, 'Python' tekstissä. Jos sana on tekstissä, uusi teksti, 'Lisätty teksti' lisätään uudella rivillä. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/lisätty teksti n/' Lähtö: Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
26. Poista uudet rivit tiedostosta ja lisää pilkku jokaisen rivin loppuun
Seuraava `` sed '' -komento korvaa tiedoston jokaisen uuden rivin pilkulla os.txt . Tässä, -Kanssa -vaihtoehtoa käytetään rivin erottamiseen NULL -merkillä.
$sed -Kanssa 's/ n/,/g'os.txtLähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
27. Poista pilkut ja lisää uusi rivi, jos haluat jakaa tekstin useille riveille
Seuraava 'sed' -komento ottaa pilkulla erotetun rivin 'echo' -komennosta syötteeksi ja korvaa pilkun uudella rivillä.
$heitti pois 'Kaniz Fatema, 30., erä' | sed //,/ n/g 'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Syöttöteksti sisältää kolme pilkulla erotettua dataa, jotka korvataan uudella rivillä ja tulostetaan kolmella rivillä.
28. Etsi kirjainkoolla merkityksetön ottelu ja poista rivi
'I': tä käytetään 'sed' -komennossa kirjainkoolla erottamattomalle osumalle, joka osoittaa, että kirjain jätetään huomiotta. Seuraava `` sed '' -komento etsii riviä, joka sisältää sanan, ’Linux 'Ja poista rivi os.txt tiedosto.
$kissaos.txt$sed '/linux/Id'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. os.txt sisältää sanan 'Linux', joka vastasi mallia, 'linux' kirjainkoon erottamiseksi ja poistetaan.
29. Etsi kirjainkoolla merkityksetön vastaavuus ja korvaa se uudella tekstillä
Seuraava 'sed' -komento ottaa syötteen 'echo' -komennosta ja korvaa sanan 'bash' sanalla 'PHP'.
$heitti pois 'Pidän bash -ohjelmoinnista' | sed 's/Bash/PHP/i'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Tässä sana 'Bash' vastasi sanaa 'bash' kirjainkokoa erottamatta ja korvattiin sanalla 'PHP'.
30. Etsi kirjainkoolla merkityksetön täsmäys ja korvaa kaikki saman tekstin isoilla kirjaimilla
' U' käytetään 'sed': ssä muuntaaksesi minkä tahansa tekstin isoiksi kirjaimiksi. Seuraava `` sed '' -komento etsii sanaa, ’Linux ’Vuonna os.txt tiedosto ja jos sana on olemassa, se korvaa sanan kaikilla isoilla kirjaimilla.
$kissaos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Os.txt -tiedoston sana 'Linux' korvataan sanalla 'LINUX'.
31. Etsi kirjainkoolla merkityksetön täsmäys ja korvaa kaikki saman tekstin pienillä kirjaimilla
' THE' käytetään `` sed '': ssä muuntaaksesi tekstin pieniksi kirjaimiksi. Seuraava `` sed '' -komento etsii sanaa, 'Linux' kohdassa os.txt tiedosto ja korvaa sana kaikilla pienillä kirjaimilla.
$kissaos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Sana 'Linux' korvataan sanalla 'linux'.
32. Korvaa tekstin kaikki suuret merkit pienillä kirjaimilla
Seuraava 'sed' -komento etsii kaikki isot kirjaimet os.txt tiedosto ja korvaa merkit pienillä kirjaimilla käyttämällä L -näppäintä.
$kissaos.txt$sed 's/ (.*)/ L 1/'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
33. Etsi numero riviltä ja liitä valuuttasymboli eteen määrä
Luo tiedosto nimeltä items.txt seuraavan sisällön kanssa.
items.txt
Kiintolevy 100Näyttö 80
Hiiri 10
Seuraava `` sed '' -komento etsii numeroa kustakin rivistä items.txt tiedosto ja liitä valuuttasymboli $ jokaisen numeron eteen.
$kissaitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Tässä '$' -symboli lisätään jokaisen rivin numeron eteen.
34. Lisää pilkkuja numeroihin, joissa on enemmän kuin 3 numeroa
Seuraava `` sed '' -komento ottaa luvun syötteenä `echo` -komennosta ja lisää pilkun jokaisen kolmen numeron ryhmän jälkeen, joka laskee oikealta. Tässä ': a' tarkoittaa tarraa ja 'ta' käytetään iteroimaan ryhmittelyprosessia.
$heitti pois '5098673' | sed -Ja: kohteeseen-Ja 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Lähtö:
Numero 5098673 annetaan komennossa 'echo' ja komento 'sed' generoi numeron 5 098 673 lisäämällä pilkku jokaisen kolmen numeron ryhmän jälkeen.
35. Korvaa sarkainmerkin 4 välilyönnillä
Seuraava `` sed '' -komento korvaa jokaisen välilehden ( t) merkin neljällä välilyönnillä. '$' -Symbolia käytetään 'sed' -komennossa vastaamaan välilehden merkkiä ja 'g' korvataan kaikki välilehtimerkit.
$heitti pois -Ja '' 1 t2 t3 ' | sed$'s/ t//g'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
36. Korvaa 4 peräkkäistä välilyöntiä sarkainmerkillä
Seuraava komento korvaa 4 peräkkäistä merkkiä sarkaimen ( t) merkillä.
$heitti pois -Ja '1 2' | sed$'s// t/g'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
37. Katkaise kaikki rivit 80 ensimmäiseen merkkiin
Luo tekstitiedosto nimeltä in.txt joka sisältää yli 80 merkin pituiset rivit tämän esimerkin testaamiseksi.
in.txt
PHP on palvelinpuolen skriptikieli.
PHP on avoimen lähdekoodin kieli ja PHP erottaa kirjaimet. PHP on alustasta riippumaton.
Seuraava komento 'sed' katkaisee jokaisen rivin in.txt tiedosto 80 merkkiä.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. In.txt -tiedoston toinen rivi sisältää yli 80 merkkiä ja tämä rivi katkaistaan tulostuksessa.
38. Etsi merkkijonon säännöllinen lauseke ja liitä sen jälkeen vakioteksti
Seuraava komento 'sed' etsii tekstiä, ' Hei 'Syöttötekstiin ja liitä teksti,' John 'Tuon tekstin jälkeen.
$heitti pois 'Hei, kuinka voit?' | sed 's/ (hei )/ 1 John/'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
39. Etsi merkkijonon säännöllistä lauseketta ja lisää tekstiä jokaisen rivin toisen osuman jälkeen
Seuraava komento 'sed' etsii tekstiä, ' PHP 'Jokaisella rivillä input.txt ja korvaa jokaisen rivin toinen ottelu tekstillä, 'Uusi teksti lisätty' .
$kissainput.txt$sed 's/ (PHP )/ 1 (uusi teksti lisätty)/2'input.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Hakuteksti, PHP ”Näkyy kaksi kertaa kohdan toisella ja kolmannella rivillä input.txt tiedosto. Joten teksti, Uusi teksti lisätty ”Lisätään toiselle ja kolmannelle riville.
40. Monirivisten 'sed' -komentosarjojen suorittaminen tiedostosta
Tiedostoon voidaan tallentaa useita 'sed' -skriptejä ja kaikki komentosarjat voidaan suorittaa yhdessä suorittamalla 'sed' -komento. Luo tiedosto nimeltä ’Sedcmd 'Ja lisää seuraava sisältö. Tässä tiedostoon lisätään kaksi 'sed' -skriptiä. Yksi käsikirjoitus korvaa tekstin, ' PHP ’Mennessä 'ASP 'Toinen käsikirjoitus korvaa tekstin' riippumaton 'Tekstin mukaan' riippuvainen ’.
sedcmd
s/PHP/ASP/s/riippumaton/riippuvainen/
Seuraava komento 'sed' korvaa kaiken 'PHP' - ja 'riippumattoman' tekstin 'ASP': llä ja 'riippuvaisella'. Tässä '-f' -vaihtoehtoa käytetään 'sed' -komennossa suorittamaan 'sed' -komentosarja tiedostosta.
$kissasedcmd$sed -fsedcmd input.txt
Lähtö:
Seuraava ulostulo tulee näkyviin, kun komennot on suoritettu.
41. Yhdistä monirivinen kuvio ja korvaa se uudella monirivisellä tekstillä
Seuraava `` sed '' -komento etsii monirivistä tekstiä, 'Linux nAndroid' ja jos kuvio vastaa, vastaavat rivit korvataan monirivisellä tekstillä, 'Ubuntu nAndroid Lollipop ’. Tässä P ja D käytetään moniriviseen käsittelyyn.
$kissaos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
42. Korvaa tekstissä kahden sanan järjestys, jotka vastaavat mallia
Seuraava 'sed' -komento ottaa syötteeksi kaksi sanaa 'echo' -komennosta ja korvaa näiden sanojen järjestyksen.
$heitti pois 'perl python' | sed -Ja 's/ ([^]*)* ([^]*)/ 2 1/'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
43. Suorita useita 'sed' -komentoja komentoriviltä
'-E' -vaihtoehtoa käytetään 'sed' -komennossa useiden 'sed' -komentosarjojen suorittamiseen komentoriviltä. Seuraava 'sed' -komento ottaa tekstin syötteeksi 'echo' -komennosta ja korvaa ' Ubuntu 'Mennessä' Kubuntu 'Ja' satoja 'Mennessä' Fedora ’.
$heitti pois 'Ubuntu Centos Debian' | sed -Ja 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Tässä 'Ubuntu' ja 'Centos' korvataan sanoilla 'Kubuntu' ja 'Fedora'.
44. Yhdistä 'sed' muihin komentoihin
Seuraava komento yhdistää `` sed '' - komennon `` cat '' - komentoon. Ensimmäinen `` sed '' -komento ottaa syötteen os.txt tiedosto ja lähetä komennon tulos toiselle 'sed' -komennolle sen jälkeen, kun teksti 'Linux' on korvattu 'Fedoralla'. Toinen 'sed' -komento korvaa tekstin 'Windows' ja 'Windows 10'.
$kissaos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
45. Lisää tyhjä rivi tiedostoon
Luo tiedosto nimeltä stdlist seuraavan sisällön kanssa.
stdlist
#ID #Nimi[101] -Mutta
[102] -Ei
G -vaihtoehtoa käytetään tyhjän rivin lisäämiseen tiedostoon. Seuraava 'sed' -komento lisää tyhjät rivit jokaisen rivin jälkeen stdlist tiedosto.
$kissastdlist$sedG stdlist
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Tyhjä rivi lisätään tiedoston jokaisen rivin perään.
46. Korvaa kaikki aakkosnumeeriset merkit välilyönnillä tiedoston jokaisella rivillä.
Seuraava komento korvaa kaikki aakkosnumeeriset merkit välilyönnillä stdlist tiedosto.
$kissastdlist$ mutta 's / [A-Za-z0-9] // g'stdlist
Lähtö:
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen.
47. Käytä & -painiketta tulostaaksesi sopivan merkkijonon
Seuraava komento etsii sanan, joka alkaa L -kirjaimella, ja korvaa tekstin lisäämällä 'Sopiva merkkijono on - 'Vastaavan sanan kanssa käyttämällä & -merkkiä. Tässä p tulostetaan muokatun tekstin tulostamiseen.
$sed -n 's/^L/Vastaava merkkijono on - &/p'os.txtLähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.
48. Vaihda sanaparia tiedostossa
Luo tekstitiedosto nimeltä course.txt seuraavalla sisällöllä, joka sisältää sanaparin jokaisella rivillä.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Seuraava komento vaihtaa sanaparin tiedoston jokaisella rivillä, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtLähtö:
Seuraava tuloste tulee näkyviin, kun sanapari on vaihdettu jokaisella rivillä.
49. Kirjoita jokaisen sanan ensimmäinen kirjain isolla alkukirjaimella
Seuraava 'sed' -komento ottaa syötteen 'echo' -komennosta ja muuntaa jokaisen sanan ensimmäisen merkin isoksi kirjaimeksi.
$heitti pois 'Pidän bash -ohjelmoinnista' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Lähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Syöttöteksti, tykkään bash -ohjelmoinnista, tulostetaan I Like Bash -ohjelmoinnista ensimmäisen sanan isojen kirjainten jälkeen.
50. Tulosta tiedoston rivinumerot
'=' -Symbolia käytetään 'sed' -komennolla rivinumeron tulostamiseen ennen tiedoston jokaista riviä. Seuraava komento tulostaa tiedoston sisällön os.txt tiedosto rivinumerolla.
$sed '='os.txtLähtö:
Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen. Sisällä on neljä riviä os.txt tiedosto. Joten rivinumero tulostetaan ennen tiedoston jokaista riviä.
Johtopäätös:
`` Sed '' -komennon eri käyttötarkoitukset selitetään tässä opetusohjelmassa käyttämällä yksinkertaisia esimerkkejä. Kaikkien tässä mainittujen 'sed' -skriptien tulos luodaan väliaikaisesti ja alkuperäisen tiedoston sisältö pysyi muuttumattomana. Mutta jos haluat, voit muokata alkuperäistä tiedostoa käyttämällä -i tai-in-place vaihtoehtoa `sed komento. Jos olet uusi Linux -käyttäjä ja haluat oppia `sed` -komennon perustoiminnot suorittamaan erilaisia merkkijonon käsittelytehtäviä, tämä opetusohjelma auttaa sinua. Kun olet lukenut tämän opetusohjelman, toivottavasti jokainen käyttäjä saa selkeän käsityksen `sed` -komennon toiminnoista.
Usein Kysytyt Kysymykset
Mihin sed -komentoa käytetään?
Sed -komennolla on useita eri käyttötarkoituksia. Tästä huolimatta pääasiallinen käyttö on sanojen korvaaminen tiedostossa tai etsiminen ja korvaaminen.
Sedan hieno asia on, että voit etsiä sanaa tiedostosta ja korvata sen, mutta sinun ei tarvitse edes avata tiedostoa - sed tekee kaiken puolestasi!
Tämän lisäksi sitä voidaan käyttää poistamiseen. Sinun tarvitsee vain kirjoittaa sana, jonka haluat löytää, korvata tai poistaa, sediksi, ja se tuo sen esiin sinulle - voit sitten korvata sanan tai poistaa kaikki sanan jäljet tiedostostasi.
sed on loistava työkalu, jolla voidaan korvata esimerkiksi IP -osoitteet ja kaikki erittäin arkaluontoiset asiat, joita et muuten haluaisi lisätä tiedostoon. sed on pakollinen tieto kaikille ohjelmistosuunnittelijoille!
Mikä on S ja G sed -komennossa?
Yksinkertaisimmillaan S -funktio, jota voidaan käyttää sedissä, tarkoittaa yksinkertaisesti 'korvaavaa'. Kun olet kirjoittanut S, voit korvata tai korvata mitä tahansa - vain kirjoittamalla S korvaa vain sanan ensimmäisen esiintymisen rivillä.
Siksi, jos sinulla on lause tai rivi, joka mainitsee sen useammin kuin kerran, S -funktio ei ole ihanteellinen, koska se korvaa vain ensimmäisen esiintymän. Voit määrittää kuvion, joka saa S: n korvaamaan sanat joka toinen esiintyminen.
G: n määrittäminen sed -komennon lopussa korvaa maailmanlaajuisesti (G tarkoittaa sitä). Tässä mielessä, jos määrität G, se korvaa valitsemasi sanan jokaisen esiintymän eikä vain ensimmäistä S -esiintymää.
Kuinka suoritan sed -komentosarjan?
Voit suorittaa sed -komentosarjan useilla tavoilla, mutta yleisin on komentorivillä. Täällä voit vain määrittää sed ja tiedoston, johon haluat käyttää komentoa.
Tämän avulla voit käyttää sed -tiedostoa kyseisessä tiedostossa, jolloin voit etsiä, poistaa ja korvata tarpeen mukaan.
Voit käyttää sitä myös komentosarjakriptinä, ja tällä tavalla voit siirtää mitä haluat skriptille, ja se suorittaa etsintä- ja korvauskomennon puolestasi. Tästä on hyötyä, jos et halua määrittää erittäin arkaluonteisia tietoja komentosarjan sisällä, joten voit sen sijaan siirtää sen muuttujana
Muista, että tämä on tietysti saatavilla vain Linuxissa, joten sinun on varmistettava, että sinulla on Linux -komentorivi, jotta voit suorittaa sed -komentosarjasi.