列と長さの異なる2つのファイルがあり、それを以下に提供されている必須出力ファイルにマージしたいと思います。助けてください!
ファイル1
aa
bb
cc
dd
ファイル2
ff , 2 , tg12
dd , 3 , tg13
gg , 4 , tg14
hh , 5 , tg15
aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
ii , 9 , tg19
希望の出力
aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
dd , 3 , tg13
答え1
AWK
ソリューション(順番にsort
注文する):
awk 'NR==FNR{ a[$1]; next }$1 in a' file1 FS='[[:space:]]*,[[:space:]]' file2 | sort
FS='[[:space:]]*,[[:space:]]'
- フィールド区切り記号の設定file2
出力:
aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
dd , 3 , tg13
答え2
私が考えることができる最も簡単な解決策は次のとおりです。
grep -f file1 file2 | sort