2つの列を持つテキストファイルがあり、両方の列にある文字列のみを印刷したいと思います。たとえば、
column1 column2
stringA stringZ
stringP stringT
stringZ stringX
stringE stringR
stringT stringG
予想出力:
stringZ
stringT
ベストアンサー1
いくつかの改善点を含め、@cherdtからはっきりと盗まれましたzsh
。bash
ksh
f=filename; comm -12 <(cut -f1 < "$f" |sort) <(cut -f2 < "$f" | sort)
- ファイル名を変数に保存すると、重複しないようになります。
- ファイルに書き込んでから比較する必要はありません。通常、ファイルを書き込むには、後でクリーンアップするために削除する必要があります。しかし、大容量ファイルにはこれをしないでください。プロセス置換を使用すると、実際に一時ファイルにリダイレクトする
comm
ときにファイルから読み取られるように見えます。stdout
fd