folyamszerkesztő
sed [ -an ] parancs [fájl ...]
sed [ -an ] [ -e parancs ] [ -f parancsfájl ] [fájl
...]
A sed segédprogram a megadott fájlokat dolgozza fel, vagy ha nincsenek fájlok megadva, akkor a standard bemenetről érkező adatokat. A bemenetet tartalmát a parancslista szerint módosítja. A bemenetet a standard kimenetre írja.
Egy önálló parancsot első argumentumként adhatunk meg a sed-nek. Több parancsot az -e vagy az -f kapcsolók használatával adhatunk meg. Minden parancs a megadási sorrend szerint hajtódik végre a bemeneten, kezdetüktől függetlenül.
A következő kapcsolók állnak rendelkezésre:
Egy sed parancs formája a következő:
[cím[,cím]]funkció[argumentumok]
A parancs első címrésze és a funkciórészek elé szóközöket lehet beszúrni.
A sed normális esetben ciklikusan bemásolja az input adott sorát egy "mintaterület"-re, a végén lévő újsor-karakter nélkul, (kivéve, ha egy "D" funkció után maradt még valami), végrehajt minden parancsot, amelyek arra a mintaterületre vonatkoznak, a mintaterületet a standard kimenetre másolja, hozzáfuzve egy újsor-karaktert, majd törli a mintaterület.
Néhány funkció egy "raktárterület"-et használ, ahova a mintaterület egy részét vagy egészét későbbi visszaállítás érdekében elmenti.
Egy címet nem kell feltétlenül megadni, de ha meg van adva, akkor számnak kell lennie (ami a bemeneti fájlok egy-egy azonos sorszámú sorát jelzi), vagy egy dollár ( "$" ) karakternek, ami a bemenet utolsó sorát címzi meg; vagy egy szövegvonatkozású címnek (amely egy reguláris kifejezésből áll, határolójelek között).
A cím nélküli parancssor minden mintaterületre érvényes.
Az egy címet tartalmazó parancssor azokat a mintaterületeket választja ki, amelyek egyeznek a címmel.
Az a parancssor, amelyik két címet tartalmaz, az első címmel egyező mintaterülettől a második címmel egyező, első utáni mintaterületig terjedő zárt intervallumra érvényes. (Ha a második cím kisebb vagy egyenlő, mint az először kiválasztott sorszám, akkor csak az a sor lesz kiválasztva.) A kiválasztott tartományt követő első sortól kezdve a sed ismét az első címet kezdi keresni.
Olyan szerkesztő parancsok, amelyek a nem kiválasztott mintaterületekre hatnak, a felkiáltójel-funkció ( "!" ) segítségével adhatók meg.
A sed reguláris kifejezések alapvető reguláris kifejezések (ARK-k, lásd regex (3) további információkért). Ezenfelül a sed a következő két dologgal bővült az ARK-hoz képest:
A sed reguláris kifejezések egy speciális tulajdonsága, hogy alapértelmezés szerint a legutoljára használt reguláris kifejezést használják. Amennyiben egy reguláris kifejezés üres, azaz csak a határoló karakterek adottak, a legutólsóként tapasztalt reguláris kifejezés használtatik. Az utolsó reguláris kifejezés: az utolsó olyan reguláris kifejezés, amelyet címzés vagy helyettesítő parancs részeként használtunk, de futási idő szerint utoljára, nem pedig lefordítási időrendben. Például a "/abc/s//XXX/" parancs az "XXX"-et fogja helyettesíteni az "abc" mintába.
A következő parancslistában a parancsok maximális megengedhető címszáma [0cím],[1cím],vagy [2cím]-mel lesz jelölve, aszerint, hogy nulla, egy vagy két címet engednek meg.
A szöveg argumentum egy vagy több sorból állhat. Amennyiben a szövegbe újsort akarunk ágyazni, előzze meg egy backslash. A többi backslash törlődik és az utánuk következő karakterek betu szerint értelmeződnek.
Az "r" és "w" funkciók egy opcionális file paraméterrel bővülnek, amelyet a funkció betujétől egy szóköznek kell elválasztania. A sed minden argumentumként adott file-t létrehoz (vagy a meglévő tartalmát csonkítja) mielőtt bármilyen adatfeldolgozás kezdetét venné.
A "b" , "r" , "s" , "t" , "w" , "y" , "!" , és a ":" funkciók elfogadnak újabb argumentumot. A következő vázlatok megmutatják, melyik argumentumokat kell a funkciók betüjétől szóközzel elválasztani.
Két funkció tesz ki egy függvény listát. Ez pedig egy newline-okkal elválasztott sed funkciólista:
{ funkció funkció ... funkció }
A "{" -et megelőzheti, illetve követheti szóköz. A funkciót megelőzheti szóköz. A lezáró "}" -et újsornak vagy opcionálisan egy szóköznek kell megelőznie.
backslash \ sürgős \a lapdobás \f újsor \n kocsivissza \r tab \t függőleges tab \v
A megjeleníthetetlen karaktereket három számjegyen, oktális számként ábrázolja (egy backslash-sel a szám minden byte-ja előtt; a legfontosabb byte áll elöl). A hosszú sorokat betördeli, a töréspontot egy backslash után álló újsorral jelöli. Minden egyes sor végére "$" kerül.
A reguláris kifejezés első mintaterületbeli előfordulását helyettesíti a csereszöveggel. Minden backslash-től és újsortól eltérő karakter használható a perjel helyett a regkif. és a csereszöveg elválasztására. Maga az elválasztó karakter használható önmaga jelölésére a regkif.-en és a csereszövegen belül, ha előtte egy backslash áll.
A csereszövegben szerepelő minden egyes "et" karakter ( "&" ) helyére az a kifejezés kerül, amire a reguláris kifejezés éppen ráillik. Az "&" különleges jelentése elnyomható, ha egy backslash kerül elé. A "\#" string helyére, ahol "#" egy számjegy, az a szöveg kerül, amelyre a megfelelő visszahivatkozó kifejezés ráillik. (lásd re_format (7)).
Egy sort ketté lehet vágni azáltal, hogy egy újsor karaktert helyettesítünk bele. Egy újsor csereszövegbeli megadásához írjunk elé egy backslash-t.
A jelzők értéke a helyettesítési funkcióban vagy üres, vagy a következők közül valahány:
A sed parancs visszatérési értéke 0, ha a muvelet sikeres volt, illetve >0, ha hiba történt.
awk (1) , ed (1) , grep (1) , regex (3) , re_format (7)
A sed parancs az AT&T UNIX 7-es verziójában jelent meg.
A sed parancs az IEEE Std. (POSIX) 1003.2 szabvány részét képezi.