awkのフィールド値に基づいてフィルタリング

awkのフィールド値に基づいてフィルタリング

to裏面に国を印刷したいです~:

welcome~:to~:Germany
welcome~:no please~:Italy
welcome~:to~:Brazil
welcome~:not ok~:China

to注:「」以外に何があるのか​​わかりません。何でも、変更されることがあります(たとえば、、no pleasenot ok

私はcut、awk、sedを使ってみました。しかし、私はそれを理解することはできません。

awk -F "~:" '{print $2 $NF}'

しかし、私が得た結果は次のとおりです。

toGermany
no pleaseItaly
toBrazil
not okChina

to以外の国をフィルタリングする方法

修正する:

代替ソリューション:(カットして調べてください) :-)

grep -v "to" |cut -d ':' -f3 

ベストアンサー1

フィールド区切り記号として使用すると、~:2番目のフィールドが同じであることを確認し、to国である3番目のフィールドを印刷できます。

awk -F"~:" '$2 == "to" { print $3; }' file

結果:

Germany
Brazil

おすすめ記事