Sed - Consigli e trucchi

Sed, o Stream Editor, come è comunemente noto, viene utilizzato principalmente per analizzare il testo e trasformare qualsiasi testo all'interno di uno script. Questa funzione di Sed viene utilizzata negli script di Shell per generare codici flessibili e dinamici. Conoscere i suggerimenti e i trucchi più comuni può aiutare gli utenti a ottimizzare i loro codici in larga misura. Si possono fare trasformazioni di testo personalizzate come la sostituzione di un testo con un altro in base al numero di occorrenze, la visualizzazione di linee specifiche e la rimozione di spazi o spazi vuoti. Si possono anche usare consigli e trucchi per oggetti vari come unire più linee o sostituire anche caratteri speciali da linee specifiche.

= [Sed] Consigli e trucchi

Sostituzione

Sostituire "foo" con "bar" su ogni riga

Solo il 1 ° evento

sed 's / foo / bar /'

Solo per il 3 ° caso

sed 's / foo / bar / 3'

Tutte le occorrenze

sed 's / foo / bar / g'

Poco prima dell'ultima occorrenza

sed 's / \ (. * \) foo \ (. * foo \) / \ 1bar \ 2 /'

Solo l'ultimo caso

sed 's / \ (. * \) foo / \ 1bar /'

Sostituisci "foo" con "bar" solo le righe che contengono "plop"

sed '/ plop / s / foo / bar / g'

Sostituisci "foo" con "bar" eccetto le righe che contengono "plop"

sed '/ plop /! s / foo / bar / g '

Sostituisci "Foo" o "foo" con "bar" su ogni linea

sed 's / [Ff] oo / bar / g'

Sostituisci "blu" o "bianco" o "rosso" con "verde"

sed 's / blu \ | vuoto \ | rosso / verde / g '

Display

La prima linea (testa -1)

sed q

Le prime 5 righe (testa -5)

sed'5 q '

sed'1, 5! d '

L'ultima riga (coda -1)

sed-n '$ p'

sed '$! d "

Le ultime 5 righe (coda -5)

sed-e: ae '$ q, N, 6, $ D; ba'

Le 2 ultime righe (coda -2)

sed '$! N; $! D'

Solo le righe soddisfano un motivo o un'espressione regolare

sed-n '/ pattern / p'

sed '/ regexp /! d'

Solo le righe che non soddisfano un motivo o un'espressione regolare

sed-n '/ pattern /! p'

sed '/ regexp / d'

La linea che precede un modello o un'espressione regolare

sed-n '/ pattern / (g; 1! p;) h'

La linea che segue un modello o un'espressione regolare

sed-n '/ regexp / (n, p;)'

Rimuovere

=== Spazio e scheda ==

Rimozione di spazi e schede

All'inizio della linea

sed 's / ^ [\ t] * / /

sed 's / ^ \ s * / /' # Utilizzo del parametro "\ s"

Alla fine della linea

sed 's / [\ t] * $ //'

All'inizio e alla fine della riga

sed 's / ^ [\ t] * //; s / [\ t] * $ // '

Riga vuota

Rimozione di righe vuote

Tutte le linee vuote

sed '/ ^ $ / di

sed '/./! di

Solo quelli in alto

sed '/./, $! di

sed-nr '/./, $ /(.*)/ s \ 1 / p' # grazie ad Adrien

Solo quelli alla fine

sed-e: ae '/ ^ \ n * $ / ($ d N; ba'-e') '

Intervalli regolari

Elimina una linea a intervalli regolari

Tutte le coppie di linee

sed'1 ~ 2d '

Tutte le linee dispari

sed'2 ~ 2d '

Ogni n righe dalla riga n

sed'3 ~ 2d '# 2 Tutte le linee della riga 3

miscellaneo

Unisci le linee

Allegare le linee 2 per 2

sed '$! N s / \ n / / '

Attacca le 3 linee per 3

sed '$! N s / \ n //; $! N s / \ n / /; '

Se una linea termina con una barra rovesciata (\), aggiungi la seguente riga e sostituisci la fine della riga (\ n) con uno spazio

sed-e: ae '/ \ \ $ / N s / \ \ \ n / /; ta'

Se una linea inizia con un segno di uguale (=), aggiungila alla riga precedente e sostituisci il segno di uguale (=) con uno spazio

sed-e: ae '$! N s / \ n = / /; ta'-e 'P, D'

Articolo Precedente Articolo Successivo

I Migliori Consigli