Sed

Da Andreabont's Wiki.

Sed (stream editor) è un tool da linea di comando nato per manipolare flussi di testo principalmente tramite le espressioni regolari. Il linguaggio di sed è turing completo, anche se non è pensato per una programmazione general purpose.

Rimuovi gli ultimi n caratteri da ogni linea di un file

Nel nostro esempio n=10

sed 's/.\{10\}$//' file.txt

Estrai porzione di una riga da ogni riga di un file

Questo sistema utilizza le funzione avanzate delle regexp, con l'operatore parentesi. L'esempio non da risulati significativi, ma serve a far capire la logica. Tutto quello che fa il match con la regexp tra parentesi viene "salvato" in una variabile numerata incrementale, nel nostro esempio \1. Il p finale indica di stampare il risulato, che nel nostro caso è solo il testo che ha fatto il match dentro la parentesi.

cat file.txt | sed -nr 's/^.+(.+).+$/\1/p'

Estrai righe contenute tra due pattern

cat file.txt | sed -nr '/StartPattern/,/EndPattern/p'

Trasforma testo in maiuscolo o minuscolo

cat file.txt | sed -nr 's/^(.+)$/\U\1/p' # Trasforma in maiuscolo
cat file.txt | sed -nr 's/^(.+)$/\L\1/p' # Trasforma in minuscolo

Rimuovi BOM da un file

sed -i '1 s/^\xef\xbb\xbf//' file.txt