50 `mutta` komentoesimerkit

50 Sed Command Examples



`sed 'on hyödyllinen GNU/Linux -tekstinkäsittelyominaisuus. Koko sed -muoto on Stream Editor. Monenlaisia ​​yksinkertaisia ​​ja monimutkaisia ​​tekstinkäsittelytehtäviä voidaan tehdä erittäin helposti käyttämällä `sed '-komentoa. Mitä tahansa tekstin tai tiedoston merkkijonoa voidaan etsiä, korvata ja poistaa käyttämällä säännöllistä lauseketta `sed -komennolla. Mutta nämä komennot suorittavat kaikenlaisia ​​muutoksia väliaikaisesti, eikä alkuperäistä tiedoston sisältöä muuteta oletuksena. Käyttäjä voi tarvittaessa tallentaa muokatun sisällön toiseen tiedostoon. `` Sed '' -komennon perustoimintoja selitetään tässä opetusohjelmassa käyttämällä 50 ainutlaatuista esimerkkiä.Ennen tämän opetusohjelman aloittamista sinun on tarkistettava `` sed '': n asennettu versio käyttöjärjestelmässäsi suorittamalla seuraava komento. Opetusohjelma perustuu GNU sediin. Joten tätä versiota `` sed '' vaaditaan harjoittelemaan tässä opetusohjelmassa esitettyjä esimerkkejä.

$sed --versio

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ö :

  1. Perustekstin korvaaminen käyttämällä 'sed'
  2. Korvaa kaikki tekstin esiintymät tietyllä tiedoston rivillä käyttämällä g -vaihtoehtoa
  3. Korvaa vain ottelun toinen esiintyminen kullakin rivillä
  4. Korvaa vain ottelun viimeinen esiintyminen kullakin rivillä
  5. Korvaa tiedoston ensimmäinen ottelu uudella tekstillä
  6. Korvaa tiedoston viimeinen ottelu uudella tekstillä
  7. Kääntöviivan poistaminen korvauskomennoista tiedostojen polkujen haun ja korvaamisen hallitsemiseksi
  8. Korvaa kaikki tiedostot koko polulla vain tiedostonimellä ei hakemistoa
  9. Korvaa teksti, mutta vain, jos merkkijonosta löytyy jotain muuta tekstiä
  10. Korvaa teksti, mutta vain jos jotakin muuta tekstiä ei löydy merkkijonosta
  11. Lisää merkkijono ennen vastaavan kuvion jälkeen käyttämällä ' 1 ''
  12. Poista vastaavat rivit
  13. Poista vastaava rivi ja 2 riviä vastaavan rivin jälkeen
  14. Poista kaikki rivit tekstirivin lopussa
  15. Poista kaikki rivit, joilla on täsmäys kaksi kertaa
  16. Poista kaikki rivit, joilla on ainoa välilyönti
  17. Poista kaikki tulostamattomat merkit
  18. Jos rivillä on täsmäys, lisää jotain rivin loppuun
  19. Jos rivin lisäysrivillä on ottelu ennen ottelua
  20. Jos rivin lisäysrivillä on ottelu ottelun jälkeen
  21. Jos vastaavuutta ei löydy, lisää jotain rivin loppuun
  22. Jos vastaavuutta ei ole, poista rivi
  23. Kopioi osuva teksti sen jälkeen, kun tekstin jälkeen on lisätty välilyönti
  24. Korvaa yksi merkkijonoluetteloista uudella merkkijonolla
  25. Korvaa vastaava merkkijono merkkijonolla, joka sisältää uudet rivit
  26. Poista rivit tiedostosta ja lisää pilkku jokaisen rivin loppuun
  27. Poista pilkut ja lisää uudet rivit jakaaksesi tekstin useille riveille
  28. Etsi kirjainkoolla merkityksetön ottelu ja poista rivi
  29. Etsi kirjainkoolla erottamaton ottelu ja korvaa se uudella tekstillä
  30. Etsi kirjainkoolla merkityksetön vastaavuus ja korvaa kaikki saman tekstin isoilla kirjaimilla
  31. Etsi kirjainkoolla merkityksetön vastaavuus ja korvaa kaikki saman tekstin pienillä kirjaimilla
  32. Korvaa tekstissä kaikki isot merkit pienillä kirjaimilla
  33. Etsi numero riviltä ja liitä valuuttasymboli numeron perään
  34. Lisää pilkkuja numeroihin, joissa on yli 3 numeroa
  35. Korvaa sarkainmerkit 4 välilyönnillä
  36. Korvaa 4 peräkkäistä välilyöntiä sarkainmerkillä
  37. Katkaise kaikki rivit 80 ensimmäiseen merkkiin
  38. Etsi merkkijonon säännöllinen lauseke ja liitä sen jälkeen vakioteksti
  39. Etsi merkkijonon säännöllinen lauseke ja toinen kopio löydetystä merkkijonosta sen jälkeen
  40. Monirivisten 'sed' -komentosarjojen suorittaminen tiedostosta
  41. Yhdistä monirivinen kuvio ja korvaa se uudella monirivisellä tekstillä
  42. Korvaa kahden sanan järjestys, jotka vastaavat mallia
  43. Käytä useita sed-komentoja komentoriviltä
  44. Yhdistä sed muiden komentojen kanssa
  45. Lisää tyhjä rivi tiedostoon
  46. Poista kaikki aakkosnumeeriset merkit tiedoston jokaiselta riviltä.
  47. Käytä merkkijonoa & -merkinnällä
  48. Vaihda sanaparia
  49. Kirjoita jokaisen sanan ensimmäinen merkki isolla
  50. 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

maanantai
tiistai
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.

Mennä huipulle

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'.

Mennä huipulle

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.txt

Lä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 ’.

Mennä huipulle

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.

$sed 's/ (.*) Ohjelmointi/ 1Skriptaus/'lang.txt

Mennä huipulle

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'.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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 - Count
EEE - 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.

Mennä huipulle

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.

Mennä huipulle

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ä'.

Mennä huipulle

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

Windows
Linux
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.

Mennä huipulle

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.txt

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.

Mennä huipulle

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'.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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 Ali
1023=>Nir Hossain
1067=>John michel

Luo tekstitiedosto nimeltä list2.txt ja lisää seuraava sisältö.

$ cat list2.txt

1001CSE GPA3.63
1002CSE 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 .

Mennä huipulle

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.

Mennä huipulle

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.txt

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.

Mennä huipulle

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ä.

Mennä huipulle

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.

Mennä huipulle

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'.

Mennä huipulle

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'.

Mennä huipulle

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'.

Mennä huipulle

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.

Mennä huipulle

33. Etsi numero riviltä ja liitä valuuttasymboli eteen määrä

Luo tiedosto nimeltä items.txt seuraavan sisällön kanssa.

items.txt

Kiintolevy 100
Nä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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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ä.

$kissain.txt
$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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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'.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.

Mennä huipulle

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.txt

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan komennon suorittamisen jälkeen.

Mennä huipulle

48. Vaihda sanaparia tiedostossa

Luo tekstitiedosto nimeltä course.txt seuraavalla sisällöllä, joka sisältää sanaparin jokaisella rivillä.

course.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

Seuraava komento vaihtaa sanaparin tiedoston jokaisella rivillä, course.txt .

$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txt

Lähtö:

Seuraava tuloste tulee näkyviin, kun sanapari on vaihdettu jokaisella rivillä.

Mennä huipulle

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.

Mennä huipulle

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.txt

Lä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ä.

Mennä huipulle

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.