Sed: Učení skriptování prostředí Shell pomocí příkazu Sed Terminal

Sed: Učení skriptování prostředí Shell pomocí příkazu Sed Terminal

Sed: Učení skriptování prostředí Shell pomocí příkazu Sed Terminal

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:

Formát použití příkazu SED

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:

Příklad 1: Příkaz SED - skriptování Shell

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

Příklad 4: Příkaz SED pro skriptování Shell

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'

Příklad 2: Příkaz SED pro skriptování Shell

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/'

Příklad 3: Příkaz SED pro skriptování Shell

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

Příklad 5: Příkaz SED pro Shell_Scripting

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:

Příklad 7: Příkaz SED pro skriptování Shell

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' )\\> "

Příklad 8. Příkaz SED pro skriptování Shell

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:

Příklad 9: Příkaz SED pro skriptování Shell

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.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.