Hozzászólások
- tldp.org/LDP/abs/html/x23170.html
- grymoire.com/Unix/Sed.html
- Ezt nem szabad duplikátumként megjelölni, mert a másik hivatkozott válasz nem ' t nem mutatja meg, hogyan cserélje le az egyes fájlokat, míg ez a válasz igen. Vagy ezt, vagy integrálja ezt a választ ebbe a
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 afoo
fájl biztonsági másolatafooe
. - 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.