是否有相当于awk -F'的sed:“{print $ 2}”?

也许有人可以帮助我find(最简单的)相当于下面的这个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|' 

将(…)之间的文本保存为\ 1,然后将其replace为整个string。

Perl的替代:

 echo "first:second:third" | perl -F':' -lane 'print $F[1]'