単純なbashスクリプトを使用するか、提供された指示に従ってFile1
新しいフル行をコピーできますか?File3
File2
sed
awk
File1: /*two or more columns*/
AC 456324
DC 689712
GH 123677
KL 236587
File2: /*one column*/
AC
DC
File3:
AC 456324
DC 689712
私は実際にPython辞書を使ってこれをやっていますが、簡単な解決策を知っていますか?
答え1
そしてgrep
grep -Ff File2 File1
そしてawk
awk 'NR==FNR {a[$1]++;next} a[$1]' File2 File1
答え2
あなたはそれを使用することができますjoin
特定の列の値が同じ2つのファイルの場所を連結して、2つのファイルの行をマージします。入力ファイルは、この列の値に基づいてソートする必要があります。
join File1 File2
ファイルがソートされていない場合は、bash / ksh93 / zshから:
join <(sort File1) <(sort File2)
ここに結合するフィールドは、AC
以下を含むフィールドです。DC
以下は、結合するフィールドがの列3と列File1
2の場合の例ですFile2
。
join -1 3 -2 2 <(sort -k3,3 File1) <(sort -k 2,2 File2)