![Existe um sed equivalente a awk -F ':' '{print $2}'?](https://rvso.com/image/567614/Existe%20um%20sed%20equivalente%20a%20awk%20-F%20'%3A'%20'%7Bprint%20%242%7D'%3F.png)
Talvez alguém possa me ajudar a encontrar (da maneira mais simples) o equivalente a este seguinte comando awk com sed:
echo "first:second:third"|awk -F ':' '{print $2}'
second
Responder1
$ echo "a:b:c" | sed 's/^[^:]*:\([^:]*\):.*$/\1/'
b
Responder2
Você poderia usar cut
.
echo "first:second:third" | cut -f 2 -d ":"
Eu acho que sed
é a ferramenta errada para isso. awk
é provavelmente o mais limpo.
Responder3
Isso também funciona
echo "a:b:c" | sed 's|.*:\(.*\):.*$|\1|'
Salva o texto entre (...) como \1 e depois o substitui por toda a string.
Responder4
Alternativa Perl:
echo "first:second:third" | perl -F':' -lane 'print $F[1]'