awkを使用してアンダースコア文字を削除する方法

awkを使用してアンダースコア文字を削除する方法

次のファイルがあります。

This is an _PLUTO_
This is _PINEAPPLE_
This is _ORANGE_
This is _RICE_

次のコードを使用して出力を抽出します。

awk '{ print "Country: "  $NF }'  report.txt   

出力:

Country: _PLUTO_
Country: _PINEAPPLE_
Country: _ORANGE_
Country: _RICE_

私の出力が次のように見えるようにすべての下線を削除するにはどうすればよいですか?

Country: PLUTO
Country: PINEAPPLE
Country: ORANGE
Country: RICE

ベストアンサー1

次のスニペットを使用できます。

$ awk '{ gsub("_", "", $NF); print "Country: " $NF }' report.txt
Country: PLUTO
Country: PINEAPPLE
Country: ORANGE
Country: RICE

修正は内部で行われますので、お客様の場合はgsub()交換結果が再度保存されます。$NF

gensub()GNU awkを使用している場合は、少し簡単なthisを使用できます。

$ gawk '{ print "Country: " gensub("_", "", "g", $NF) }' report.txt
Country: PLUTO
Country: PINEAPPLE
Country: ORANGE
Country: RICE

GNU awk ドキュメントをご覧ください。gsub()そしてジェンソプ()詳細については。

おすすめ記事