Käyttämällä ' sed ' käytetään [kaksoiskappale]

Tähän kysymykseen on jo annettu vastauksia :

Kommentit

vastaus

ed itor , koska voit käyttää | (putki) lähettää vakiovirtauksia (erityisesti STDIN ja STDOUT) kautta sed ja muuttaa niitä ohjelmallisesti lennossa, mikä tekee siitä kätevän työkalun Unix-filosofian perinteessä; mutta voi myös muokata tiedostoja suoraan käyttämällä alla mainittua parametria -i.
Harkitse seuraavia :

 sed -i -e "s/few/asd/g" hello.txt  

s/ käytetään s korvaamaan löydetty lauseke few asd:

Muutama, rohkea.


Asd , rohkea.

/g tarkoittaa ”globaali”, mikä tarkoittaa, että tämä tehdään koko riville. Jos jätät /g -kohdan (s/few/asd/ -toiminnon kanssa, aina on oltava kolme vinoviivaa riippumatta) ja few näkyy kahdesti samalla rivillä, vain ensimmäinen few muutetaan muotoon asd:

Muutama mies, muutama nainen, rohkea.


Asd-miehet, muutamat naiset, rohkeat.

Tämä on hyödyllistä joissakin olosuhteissa, kuten erikoismerkkien muuttaminen rivien alussa (esimerkiksi korvataan suuremmat kuin symbolit, joita jotkut ihmiset käyttävät lainatessaan aikaisempaa materiaalia sähköpostiketjuissa) vaakasuoralla välilehdellä ja jättää lainatun algebrallisen eriarvoisuuden myöhemmin rivillä koskematta), mutta esimerkissä, jossa määrität, että missä tahansa few esiintyy, se tulisi korvata , varmista, että sinulla on /g.

Seuraavat kaksi vaihtoehtoa (liput) on yhdistetty yhdeksi, :

-i -vaihtoehtoa käytetään muokkaamaan i n paikka tiedostossa hello.txt.

-e -vaihtoehto osoittaa e xpression / command to run, tässä tapauksessa s/.

Huomaa: On tärkeää käyttää -i -e hakuun / korvaamiseen. Jos teet -ie, luot varmuuskopion kaikista tiedostoista, joihin on liitetty e-kirjain.

Kommentit

  • Olen ' m OS X -käyttöjärjestelmällä, mihin se arvoinen on, ', mutta saan tämän virheen: sed: 1: " hello.txt ": virheellinen komentokoodi.
  • Muokkausta ehdotettiin lisäämään -e lippu sed. -E-lippu on valinnainen, kunhan suoritettava komento näkyy ensin, komentotiedostoa ja komennoa arg ei ole, ja komentoja on vain yksi.
  • @roo Mac OS X: ssä käyttäen -ie Saan, että tiedosto foo varmuuskopioidaan nimellä fooe.
  • tämä komento antaa minulle ylimääräisen tiedoston, joka päättyy -e, miksi ??: index.html-e sed -i -e ' s / n / d / g ' index.html
  • Macissa -i -e luo uuden tiedoston, jonka nimeen on liitetty -e. Tämä näyttää toimivan bash: sed " -i " " " " -e " " s / muutama / asd / g " " somefile.xml "

Vastaa

sed -i "s/fea/asd/g" hello.txt 

g: Yleinen

s: korvike

-i : reaaliaikainen toimii tiedostojen paikalla

kommentit

  • Symlinkkejä käsiteltäessä on hyvä lisätä --follow-symlinks muuten -i muuttaa symlinkistä tiedoston (muokatun) kopion.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *