Sed - Consigli e trucchi
= [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'