2

awk を使用して列/フィールドからサブセットを抽出するにはどうすればよいでしょうか?

入力ファイル test.txt は次のとおりです。

aaa bbb ccc=0.7707;ddd=0.21

3列目から数字「0.21」を抽出し、1列目と2列目で出力したいと思います。

aaa bbb 0.21

以下のコードを試して使用しましたが、失敗しました:

awk 'BEGIN { OFS = "\t" } { $4 = /^ddd=(+\d)/ ; print $1,$2,$4 }' test.txt

助けてください!

どうもありがとう、TP

4

3 に答える 3

1

ブロック内の-Fフラグまたは設定を使用して、複数の区切り文字を指定できます。例えば:FSBEGIN

echo "aaa bbb ccc=0.7707;ddd=0.21" | awk -F "[ =]" '{ print $1, $2, $NF }'

結果:

aaa bbb 0.21
于 2013-11-10T10:54:05.123 に答える
0

使用できますgsub

awk 'BEGIN { OFS = "\t" } { gsub(/.*=/, "", $3); print $1,$2,$3 }' text.txt

入力については、次のようになります。

aaa bbb 0.21
于 2013-11-10T10:55:34.587 に答える
0

awk

awk '{split($3,a,"=");print $1,$2,a[3]}'
aaa bbb 0.21
于 2013-11-10T11:22:20.507 に答える