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

関連情報