2番目のファイルキーに基づいて最初のファイル(csv)をソートする方法

2番目のファイルキーに基づいて最初のファイル(csv)をソートする方法

2番目のファイルキーに基づいて最初の列を使用して最初のファイルをソートするソリューションを見つけようとしています。

最初のファイルの例(file1.csv)

COLUMN1 COlUMN2
apple fruit
dog animal
cat animal
cow animal

2番目のファイルの例(sort_keys.txt)

cat
dog
apple
cow

期待される出力(sorted.txt)

COLUMN1 COlUMN2
cat animal
dog animal
apple fruit
cow animal

これまで役立つ sort コマンドと awk コマンドを見つけましたが、うまくいくコードはありません。

$> awk 'NR==FNR{o[FNR]=$1; next} {t[$1]=$0} END{for(x=1; x<=FNR; x++){y=o[x]; print t[y]}}' sort_key.txt file1.csv

しかし、コマンドが期待どおりに機能しないため、専門家のアドバイスが必要です。 PS 私はLinuxコマンドの知識を持っていますが、これは非常に具体的であり、実装方法を知りません。

どんな助けやアドバイスにも感謝します。

ベストアンサー1

$ awk 'NR==1; NR==FNR{a[$1]=$2; next} {print $1, a[$1]}' file1 sort_keys.txt
COLUMN1 COlUMN2
cat animal
dog animal
apple fruit
cow animal

おすすめ記事