
Tal vez alguien pueda ayudarme a encontrar (el más simple) el equivalente del siguiente comando awk con sed:
echo "first:second:third"|awk -F ':' '{print $2}'
second
Respuesta1
$ echo "a:b:c" | sed 's/^[^:]*:\([^:]*\):.*$/\1/'
b
Respuesta2
Podrías usar cut
.
echo "first:second:third" | cut -f 2 -d ":"
Creo que sed
es la herramienta equivocada para esto. awk
Es probablemente el más limpio.
Respuesta3
Esto también funciona
echo "a:b:c" | sed 's|.*:\(.*\):.*$|\1|'
Guarda el texto entre (...) como \1 y luego lo sustituye por toda la cadena.
Respuesta4
Alternativa a Perl:
echo "first:second:third" | perl -F':' -lane 'print $F[1]'