![是否有相當於 awk -F ':' '{print $2}' 的 sed?](https://rvso.com/image/567614/%E6%98%AF%E5%90%A6%E6%9C%89%E7%9B%B8%E7%95%B6%E6%96%BC%20awk%20-F%20'%3A'%20'%7Bprint%20%242%7D'%20%E7%9A%84%20sed%EF%BC%9F.png)
也許有人可以幫我找到(最簡單的)與以下 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]'