![¿Existe un sed equivalente a awk -F ':' '{print $2}'?](https://rvso.com/image/567614/%C2%BFExiste%20un%20sed%20equivalente%20a%20awk%20-F%20'%3A'%20'%7Bprint%20%242%7D'%3F.png)
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]'