Il comando "sed" nei sistemi operativi liberi di tipo GNU / Linux è un comando molto versatile, poiché a sua volta È considerato un editor di testo orientato al "flusso" invece che "interattivo" come quelli tipici, poiché accetta un file o uno standard input come input, quindi elabora ogni riga e il risultato viene inviato allo standard output. Vale a dire, SED (Stream EDitor) ci permette di modificare il contenuto delle diverse righe di un file sulla base di una serie di comandi o di un file di comando.
Generalmente, il comando «sed» viene utilizzato come filtro, poiché legge ogni riga dell'inserimento dei dati e quindi esegue le azioni richieste che di solito vengono lette, estratte, modificate e visualizzate o salvate. Sebbene il suo potere sia tale inoltre ci permette in modo comodo, eliminare righe, registrare o sostituire stringhe di caratteri all'interno delle righe di un file.
Introduzione al comando "sed"
Già in altre precedenti pubblicazioni in DesdeLinux abbiamo parlato e mostrato esempi sull'uso di tale comando, come ad esempio: Come eliminare righe specifiche da un file ... y Con terminale: utilizzo di espressioni regolari II: sostituzioni, quindi questa volta vedremo direttamente esempi un po 'più avanzati e altrettanto pratici che lo usano.
Fondamentalmente il comando «sed» ha la seguente sintassi:
sed comandos_sed archivo
dove "Command_sed" corrisponde a una o più specifiche su cosa fare con le righe da cui vengono lette "archivio".
Un uso più ampio ci lascia con la seguente sintassi:
sed [-ns] '[direccion] instruccion argumentos'
Dove:
Esempi pratici
Elenca file / cartelle in un percorso
Utile riga di comando che può essere utilizzata per elencare il contenuto di un percorso X specificato e quindi rilevare / contare / filtrare un elemento cercato e indicare un'azione successiva da eseguire.
ls -l | awk '{ print $NF }' | sed 1d
Esempio:
Quest'altra variante che utilizza il comando "sed" è molto utile:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Crea una sequenza numerica
Mostra a schermo o salva in un file una sequenza numerica (o qualsiasi altro input) creata ma in forma orizzontale (lineare) e non verticale che può essere letta successivamente per altri processi.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Lo stesso esempio può essere fatto combinando il comando «sete" con "Printf" come mostrato di seguito:
printf '%s ' {1..100}|sed 's/ $/\n/'
Elimina file con esclusioni
Setacciare un percorso del file system alla ricerca di modelli di file da escludere e quindi eliminare il resto del contenuto. Molto utile per una pulizia precisa e attenta.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Crea un indirizzo MAC virtuale
Questo passaggio può essere utile per la sicurezza del computer o attività di protezione durante la navigazione in siti pericolosi o l'esecuzione di attività di hacking.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Lo stesso effetto può essere ottenuto utilizzando il comando "sed" insieme ad altri comandi, come mostrato di seguito:
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
Esempio:
Modificare temporaneamente il prompt del terminale
Questo può aiutarci a inserire temporaneamente dei parametri nel nostro prompt che possono esserci utili mentre svolgiamo un'attività speciale. In questo esempio cambieremo solo il modo in cui viene visualizzato il prompt.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Gestisci l'output del comando "ps"
Ordine dei comandi molto pratico per permettere la formattazione dell'output del comando «ps», cioè quello che si ottiene dal Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Esempio:
Questo può essere applicato ai processi in base alla percentuale di memoria consumata:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Questi esempi di righe di comando che utilizzano il comando "sed" spero che lo trovi molto utile. E servono per essere utilizzati direttamente dalla console o indirettamente inserendoli in uno script (task automatizzato).
Nel prossimo post su Shell Scripting esploreremo altri comandi.
Se vuoi saperne di più sul comando "sed" visita questo link "Tutorial e breve guida per Unix e Linux"O"Utilizzo di base»E se vuoi saperne di più su Shell Scripting nel nostro blog, puoi dare un'occhiata alle altre nostre pubblicazioni sull'argomento, cliccando qui: Scrittura DesdeLinux.