簡體   English   中英

如何使用awk從列/字段中提取子集?

[英]How can I extract a subset from a column/field using awk?

我想知道如何使用awk從列/字段中提取子集?

這是輸入文件test.txt:

aaa bbb ccc=0.7707;ddd=0.21

我希望能夠從第三列中提取圖形“ 0.21”,並將其與第一列和第二列一起輸出:

aaa bbb 0.21

我嘗試並使用下面的代碼,但失敗了:

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

請幫忙!

TP,非常感謝

您可以使用-F標志或在BEGIN塊中設置FS來指定多個定界符。 例如:

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

結果:

aaa bbb 0.21

您可以使用gsub

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

對於您的輸入,它會給出:

aaa bbb 0.21

另一個awk

awk '{split($3,a,"=");print $1,$2,a[3]}'
aaa bbb 0.21

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM