Kommentit
- tldp.org/LDP/abs/html/x23170.html
- grymoire.com/Unix/Sed.html
- Tätä ei pidä merkitä kaksoiskappaleeksi, koska toinen viitattu vastaus ei ole ' t näyttää, kuinka yksikkötiedosto voidaan korvata, kun taas tämä vastaus. Joko se tai integroi tämä vastaus siihen
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ä tiedostofoo
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.