2つのファイルがあります。両方のファイルにある名前を印刷したいと思います。
file1
1dfg
4rte
aabd
hjgf
file2
4rte
2fgh
1dfg
希望する出力
1dfg
4rte
一方通行:
$ comm -12 <(sort file1) <(sort file2)
1dfg
4rte
awkを使用する他の方法
awk 'FNR==NR{a[$1]+=1;next} a[$1]' file1.txt file2.txt
grep
それを行うことができます:
grep -f file2 file1
結果:
1dfg
4rte
ただし、awk
空白の重要性によっては、より適切な場合があります。
awk 'FNR==NR { a[$0]; next } $0 in a' file2 file1
また:
awk 'FNR==NR { a[$1]; next } $1 in a' file2 file1
試す
cat file1 | grep -Fxf file2
そして、grep検索の強調表示なしで印刷したい場合
cat file1 | grep -Fxf file2 | awk '{print $1}'