A ' sed ' használata a [duplikátum]

Erre a kérdésre már itt vannak válaszok :

Hozzászólások

Válasz

sed a s tream ed itor , mivel a | (pipe) használatával standard adatfolyamokat küldhet (konkrétan a STDIN és a STDOUT) a sed keresztül, és menet közben programozatosan megváltoztatja őket, ezáltal a Unix filozófiai hagyományának hasznos eszközévé válik; de közvetlenül is szerkesztheti a fájlokat az alább említett -i paraméter használatával.
Vegye figyelembe a következőket: :

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

s/ a s kifejezéssel a megtalált few kifejezés helyettesítésére szolgál. asd:

A néhány, a bátor.


Az asd , a bátor.

/g jelentése “globális”, vagyis ezt az egész vonalon kell megtenni. Ha elhagyja a /g elemet (s/few/asd/ esetén mindig három perjelnek kell lennie, bármi legyen is) és few kétszer jelenik meg ugyanazon a soron, csak az első few változik asd -re:

A néhány férfi, a kevés nő, a bátor.


Az asd férfiak, a néhány nő, a bátor.

Ez bizonyos esetekben hasznos, például a speciális karakterek megváltoztatásához a sorok elején (például a nagyobbnál nagyobb szimbólumok cseréjével, amelyeket egyesek az e-mail szálak korábbi anyagának idézésére használnak) vízszintes füllel, miközben egy idézett algebrai egyenlőtlenséget hagy a későbbi sorban érintetlenül), de a példában, ahol megadja, hogy bárhol few fordul elő, ki kell cserélni , győződjön meg róla, hogy meg van-e /g.

A következő két opciót (zászlókat) egyetlen, :

-i opció a i n hely a hello.txt fájlban.

-e opció jelzi a e xpression / parancs futtatásához, ebben az esetben s/.

Megjegyzés: Fontos, hogy a -i -e szót használja a kereséshez / cseréhez. Ha -ie műveletet hajt végre, akkor minden fájlról biztonsági másolatot készít, az “e” betűvel.

Megjegyzések

  • I ' m az OS X használatával, mire érdemes ez a ', de ezt a hibát kapom: sed: 1: " hello.txt ": érvénytelen parancskód.
  • Szerkesztést javasoltak az -e hozzáadásához zászló sed. A -e zászló opcionális, amíg a végrehajtásra vonatkozó parancs megjelenik először, nincs parancsfájl és arg parancs, és csak egy parancs van.
  • @roo mac os x-en, a -ie Megkapom, hogy a foo fájl biztonsági másolata fooe.
  • ez a parancs egy -e végződésű extra fájlt ad nekem, miért ??: index.html-e sed -i -e ' s / n / d / g ' index.html
  • Mac rendszeren az -i -e új fájlt hoz létre, amelynek a -e nevet tartalmaz. Úgy tűnik, ez a bash-ban működik: sed " -i " " " " -e " " s / néhány / asd / g " " somefile.xml "

Válasz

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

g: Globális

s: helyettesítő

-i : A valós idejű fájl a inplace

Megjegyzések

  • fájlokkal működik. Ha szimbolikus linkekkel foglalkozik, jó hozzáadni a --follow-symlinks különben -i a symlinket a fájl (szerkesztett) másolatává változtatja.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük