是否有相當於 awk -F ':' '{print $2}' 的 sed?

是否有相當於 awk -F ':' '{print $2}' 的 sed?

也許有人可以幫我找到(最簡單的)與以下 awk 指令與 sed 等效的指令:

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]'

相關內容