SED examples
- stampa tutte le linee di un file tranne i commenti (iniziano con '#')
cat $FILE | sed -e '/^#/d'
- stampa tutte le linee che iniziano con un numero
cat $FILE | sed -n "/^[0-9]/p"
- stampa tutte le linee che NON iniziano con un numero
cat $FILE | sed -n "/^[0-9]/p"
- rimuove tutte le linee vuote (costituite solo da \n)
cat $FILE | sed -e "/^$/d"
- rimuove tutte le linee formate da spazi (e seguite da \n)
cat $FILE | sed -e "/^[ ][ ]*$/d"
- rimuove tutte le linee che contengono 'exportPIPPO'
sed "/export[ | ]*PIPPO/d" $FILE
- rimuove il path di un filename
echo "/usr/bin/prova" | sed -e "s/.*\///"
scrive: prova
- scrive solo il path
echo "/usr/bin/prova" | sed -e "s/\/[^\/]*$//"
scrive: /usr/bin
- stampa la 'n'esima riga di un file (nell'esempio la 5a)
sed -n -e "5p" $FILE
- stampa le righe di un file (nell'esempio dalla 2a alla 5a)
sed -n -e "2,5p" $FILE
- esempi di sostituzioni:
sed "s/\"/ /g" .. sostituisce tutte le '"' con space
sed "s/,/ /g" .. sostituisce tutte le ',' con space
sed 's:bin::' .. sostituisce il primo 'bin' con nulla
- esempi di estrazioni:
- id | sed -n "/^uid=[0-9]*(\([^)]*\)).*/s//\1/p"
estrae: nome dell'user
- echo "-T100" | sed 's/^-T//'
estrae: 100
- estrae i campi user e home (il 1o e il 6o) dal file /etc/passwd e formatta:
cat /etc/passwd | sed 's/\([^:]*\):.*:\(.*\):[^:]*$/_dir=\2 _user=\1/'
scrive: _dir=/ _user=root
...
_dir=/home/bellina _user=bellina