Sed

A sed (stream editor) egy nem interaktív szövegszerkesztő program a Unix operációs rendszerben. A szövegszerkesztő parancsokat parancssorból vagy -fájlból veszi. Használhatjuk helyettesítésre, törlésre vagy transzformációra. Néhány kivételtől eltekintve egyszerre egy sorral dolgozik. Az állomány sorait rendre olvassa be a mintatérbe, és hajtja végre rajta a scriptben szereplő parancsokat. Ha a scriptben szereplő összes parancs feldolgozta a mintatérben levő sort, akkor a mintatér tartalma kikerül a standard outputra (a -n opcióval ezt a default kiírást letilthatjuk).

1973 és 1974 között fejlesztette ki Lee E. McMahon mint Unix alkalmazást, de napjainkban is minden operációs rendszerben elérhető.

Használata

sed kapcsolók file...

Az eredmény a standard outputra kerül (tehát több fájl esetén is egy eredményfájl van).[1] A kimenetet rendszerint fájlba irányítjuk vagy pipeline-nal (|) tovább alakítjuk.

(Ha sem a -e, sem a -f kapcsoló nincs megadva, a sed az első paramétert tekinti az egyetlen szerkesztő utasításnak, a többit fájlnak.)

Főbb kapcsolók

  • -e: szerkesztőparancs. Több -e paraméter lehet a parancssorban.
  • -f: parancsfájl. A sed ebből olvassa a szerkesztő parancsokat.
  • -n: a mintatér nem íródik ki a parancsok feldolgozása után; lásd p parancs.

Főbb parancsok

Minden parancs egybetűs. A betűt megelőzheti a sor(ok) megadása, amely(ek)re azt végre kell hajtani. Ha elmarad, minden sorra végrehajtódik az utasítás. A parancs betűjét követheti(k) a parancs paramétere(i).

A sorok egy vagy két paraméterrel adhatók meg. Az utóbbi sortartományt jelent kezdő- és végsor alakban.

A sorparaméter megadható sorszámmal vagy két / közé zárt reguláris kifejezéssel.[2] A sortartomány két tagja különböző módon is leírható, második sorparaméter pedig lehet az elsőhöz relatív +N ill. -N alakban.

A betű előtti ! megfordítja a sorkijelölést: ezekre nem hajtódik végre az utasítás.

A fontosabb egybetűs parancsok és paramétereik:

  • s/mit/mire/hányadik
    Helyettesítés. mit reguláris kifejezés. mire-ben a &-jellel hivatkozhatunk a mit-hez illeszkedő mintára.[3] Az utolsó paraméter azt mondja meg, hányadik talált mintában kell a helyettesítést végrehajtani. A g érték minden illeszkedésre végrehajtja a helyettesítést a sorban.
  • d
    Törli a sort a mintatérből.
  • p
    Kiírja a mintatér aktuális tartalmát a standard outputra.

Példák

A következő példa a sed egy általános használata:

echo "`sed 's/ui./ugyanis/g' inputFileName`" > outputFileName

Az s arra utal, hogy most a programot behelyettesítésre használjuk, a g miatt pedig a mintát az összes előfordulásában helyettesíti az új mintával. Az első helyen mindig az a minta található, amit keresek és amit helyettesíteni akarok, a második helyen pedig az új minta, mellyel helyettesítem a régi mintát.

A Unix, sed -et gyakran használják szűrőként a csővezetékkel, a pipeline együtt:

generate_data | sed -e 's/x/y/g'

A felső példában generáljuk a data állományt, majd a sed segítségével az x összes előfordulását helyettesítjük y-nal. Az e opciót akkor használjuk, ha a sed parancssorban több végrehajtandó scriptet adunk meg. Egyetlen script esetén elhagyható.

Példa a d utasítás használatára:

sed '/^$/d' file

A példában a sed törli az üres sorokat a file nevű állományból.

Az alábbi példában törlődnek az üres sorok és azok, melyek csak szóközt tartalmaznak:

sed -e '/^ *$/d' inputFileName

Az előbbi példák olyan karaktereket használtak, melyek különböző reguláris kifejezések:

  • A kalap (^) a sor kezdetét jelöli.
  • A dollárjel ($) a sor végét jelöli.
  • A csillag (*) jelöl egy nulla vagy több karaktert.

Történet

A sed az első Unix parancsok közé tartozik, mely segítségével állományok sorait dolgozzuk fel. Továbbfejlesztés során jött létre a grep parancs. A sed és az AWK járult hozzá a Perl kifejlesztéséhez.

Jegyzetek

  1. Létezik fájlba író parancs, mellyel nemcsak a standard output lehet az eredmény helye.
  2. A /-t más karakter is helyettesítheti \c ... c alakban, ahol c a /-t helyettesítő karakter.
  3. A mit egyes részeire is lehet hivatkozni. A reguláris részkifejezéseket \( és \) közé zárjuk, így mire-ben \1, \2 stb. alakban hivatkozhatunk rá.
Sablon:Unix parancsok
  • m
  • v
  • sz
Unix parancssoros programok és utasítások
Fájlrendszer
cat · cd · chmod · chown · chgrp · cksum · cmp · cp · dd · du · df · file · fsck · fuser · ln · ls · lsattr · lsof · mkdir · mount · mv · pwd · rm · rmdir · sha1sum · size · split · tee · type  · touch · umask
Processzek
at · chroot · cron · exit · kill · killall · nice · pgrep · pidof · pkill · ps · pstree · sleep · time · top · wait
Felhasználói környezet
env · finger · id · logname · mesg · passwd · su · sudo · uptime · tput · w · wall · who · whoami · write
Szövegkezelés
awk · banner · comm · cut · ed · ex · fmt · head · iconv · join · less · more · paste · sed · sort · strings · talk · tac · tail · tr · uniq · vi · wc · xargs
Shell programozás
alias · basename · case  · clear · dirname · echo · expr · false · for · if · printf · seq · test · true · uname · unset  · until  · while  · yes
Hálózat
dig · host · inetd · netstat · ping · rlogin · netcat · traceroute
Keresés
find · grep · locate · whereis · which · whatis
Dokumentáció
apropos · help · man
Egyéb
bc · cal · date · info · lp · history
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap