Может быть, кто-нибудь может помочь мне найти (наиболее просто) эквивалент этой следующей команды awk с помощью sed:
echo "first:second:third"|awk -F ':' '{print $2}'
second
$ echo "a:b:c" | sed 's/^[^:]*:\([^:]*\):.*$/\1/'
b
Вы могли бы использовать cut
.
echo "first:second:third" | cut -f 2 -d ":"
думаю sed
не подходит для этого. awk
наверное самый чистый.
Это тоже работает
echo "a:b:c" | sed 's|.*:\(.*\):.*$|\1|'
Is сохраняет текст между (...) как \ 1, а затем заменяет им всю строку.
Альтернатива Perl:
echo "first:second:third" | perl -F':' -lane 'print $F[1]'