SED (Stream EDitor) es un comando de Linux que se utiliza para modificar las líneas de un fichero aplicando una serie de comandos específicos. En este artículo te enseñamos algunas de las opciones que hemos considerado más útiles para su uso.
sed 's/foo/bar/'
sed 's/foo/bar/3'
sed 's/foo/bar/g'
sed 's/\(.*\)foo\(.*foo\)/\1bar\2/'
sed 's/\(.*\)foo/\1bar/'
sed '/plop/ s/foo/bar/g'
sed '/plop/! s/foo/bar/g'
sed 's/[Ff]oo/bar/g'
sed 's/azul\|blanco\|rojo/verde/g'
sed q
sed '5q'
sed '1,5!d'
sed -n '$p'
sed '$!d"
sed -e :a -e '$q;N;6,$D;ba'
sed '$!N;$!D'
sed -n '/patrón/p'
sed '/regexp/!d'
sed -n '/patrón/!p'
sed '/regexp/d'
sed -n '/patrón/{g;1!p;};h'
sed -n '/regexp/{n;p;}'
sed 's/^[ \t]*//
sed 's/^\s*//' # Uso del parámetro "\s"
sed 's/[ \t]*$//'
sed 's/^[ \t]*//;s/[ \t]*$//'
sed '/^$/d'
sed '/./!d'
sed '/./,$!d'
sed -nr '/./,$s/(.*)/\1/p'
sed -e :a -e '/^\n*$/ {$d;N;ba' -e '}'
sed '1~2d'
sed '2~2d'
sed '3~2d' # Todas les 2 líneas a partir de la línea 3
sed '$!N;s/\n//'
sed '$!N;s/\n//;$!N;s/\n//;'
sed -e :a -e '/\\$/N; s/\\\n/ /; ta'
sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'
El comando sed posee un flag que permite buscar un patrón sin tener en cuenta las mayúsculas y minúsculas, pero este flag se aplica únicamente al comando de sustitución (comando s).
A continuación veremos un truco que permite utilizar este flag para mostrar (o no mostrar) líneas que coinciden con un patrón dado sin tener en cuenta de las mayúsculas y minúsculas.
Para ello, tan solo hay que utilizar el comando de sustitución “s” asociado al [metacaracter "&"] y al flag “I”.
Ejemplo para mostrar únicamente las líneas que contienen el término “patron”:
sed -n 's/patron/&/Ip' fichero