Příkaz „sed“ ve svobodných operačních systémech typu GNU / Linux je to velmi univerzální příkaz Považuje se za textový editor orientovaný na „tok“ místo na „interaktivní“ jako typické, protože přijímá jako vstup soubor nebo standardní vstup, pak zpracuje každý řádek a výsledek se odešle na standardní výstup. To znamená, SED (Stream EDitor) nám umožňuje upravovat obsah různých řádků souboru na základě řady příkazů nebo příkazového souboru.
Obecně se jako filtr používá příkaz «sed», protože čte každý řádek vašeho zadávání dat a poté provádí požadované akce, které se obvykle čtou, extrahují, upravují a zobrazují nebo ukládají. Ačkoli jeho síla je taková navíc nám umožňuje pohodlným způsobem mazat řádky, záznamy nebo nahradit řetězce znaků v řádcích souboru.
Úvod do příkazu "sed"
Již v dalších předchozích publikacích v DesdeLinux mluvili jsme a ukazovali příklady použití uvedeného příkazu, jako například: Jak odstranit konkrétní řádky ze souboru ... y S terminálem: Používání regulárních výrazů II: Náhrady, takže tentokrát uvidíme přímo o něco pokročilejší a stejně praktické příklady jeho použití.
Příkaz «sed» má v zásadě následující syntaxi:
sed comandos_sed archivo
kde "Command_sed" odpovídá jedné nebo více specifikacím o tom, co dělat s řádky, ze kterých se čte "archiv".
Rozsáhlejší použití nám ponechává následující syntaxi:
sed [-ns] '[direccion] instruccion argumentos'
Kde:
Praktické příklady
Seznam souborů / složek na cestě
Užitečný příkazový řádek, kterým lze vypsat obsah zadané cesty X a poté detekovat / počítat / filtrovat hledanou položku a označit následnou akci, která má být provedena.
ls -l | awk '{ print $NF }' | sed 1d
příklad:
Tato další varianta pomocí příkazu "sed" je velmi užitečná:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Vytvořte číselnou sekvenci
Zobrazit na obrazovce nebo uložit do souboru číselnou sekvenci (nebo jakýkoli jiný vstup) vytvořenou, ale v horizontální (lineární) a ne vertikální formě, kterou lze později přečíst pro jiné procesy.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Stejný příklad lze provést kombinací příkazu «žízeň" s "Printf" Jak je ukázáno níže:
printf '%s ' {1..100}|sed 's/ $/\n/'
Odstraňte soubory s vyloučením
Prochází se cestou systému souborů a hledá vzory souborů, které se mají vyloučit, a poté smaže zbytek obsahu. Velmi užitečné pro přesné a pečlivé čištění.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Vytvořte virtuální MAC adresu
Tento krok může být užitečný pro zabezpečení nebo ochranu počítače při procházení nebezpečných stránek nebo provádění hackerských úkolů.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Stejného efektu lze dosáhnout použitím příkazu „sed“ ve spojení s dalšími příkazy, jak je znázorněno níže:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
příklad:
Dočasně změňte výzvu terminálu
To nám může pomoci dočasně vložit do naší výzvy parametry, které nám mohou být užitečné při provádění speciální činnosti. V tomto příkladu změníme pouze způsob zobrazení výzvy.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Spravujte výstup příkazu "ps"
Velmi praktické pořadí příkazů, které umožňuje formátování výstupu příkazu «ps», tedy to, co se získá z nástroje Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
příklad:
To lze použít pro procesy podle procenta spotřebované paměti:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Tyto příklady příkazových řádků pomocí příkazu "sed" Doufám, že vám to bude velmi užitečné. A slouží k použití přímo z konzoly nebo nepřímo jejich vložením do skriptu (automatizovaný úkol).
V dalším příspěvku na Shell Scripting prozkoumáme další příkazy.
Pokud se chcete dozvědět něco více o příkazu „sed“, navštivte tento odkazVýukový a krátký průvodce pro Unix a Linux"Nebo"Základní použití»A pokud se chcete o Shell Scripting dozvědět více v našem vlastním blogu, můžete se podívat na naše další publikace k tomuto tématu kliknutím sem: Skriptování DesdeLinux.