是否有与 awk -F ':' '{print $2}' 等效的 sed 命令?

是否有与 awk -F ':' '{print $2}' 等效的 sed 命令?

也许有人可以帮助我找到(最简单的)与 sed 等效的以下 awk 命令:

echo "first:second:third"|awk -F ':' '{print $2}'
second

答案1

$ echo "a:b:c" | sed 's/^[^:]*:\([^:]*\):.*$/\1/'
b

答案2

您可以使用cut

echo "first:second:third" | cut -f 2 -d ":"

我认为sed这是错误的工具。awk可能是最干净的。

答案3

这也有效

echo "a:b:c" | sed 's|.*:\(.*\):.*$|\1|'

将 (...) 之间的文本保存为 \1,然后用它替换整个字符串。

答案4

Perl 替代方案:

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

相关内容