2016-10-24 5 views
0

4つのファイルの交差をどのように見つけるか?4つのファイルの交差を見つける

私はgrep -Fx -f 1.txt 2.txt 3.txt 4.txtを使用しましたが、2つのファイルに対してのみ動作するようです。同様にcomm -12 1.txt 2.txtを4つのファイルに展開することはできず、データをソートする必要があります。私のデータはソートされていませんが、実際はそうではありません。私はMacにいる。

入力:

1.txt 
.css 
.haha 
.hehe 
2.txt 
.ajkad 
.shdja 
.hehe 

3.txt 
.css1 
.aaaaa 
.hehe 

4.txt 
.qwqw 
.kkkmsm 
.hehe 

出力:.hehe

Iはその後に再度のgrepを使用34.txtに格納されている、3及び4よりも、12.txtに格納された1及び2の最初のgrepを使用しました12.txtと34.txt。しかし、これを行うためのより良い方法が必要です。あなたはgrepする連鎖することができます

+1

この場合の交差点はどういう意味ですか?あなたは短い入力例と望ましい出力を提供できますか? – dawg

+0

そこに行く... – sanjihan

答えて

1

grep -f 1.txt 2.txt \ 
| grep -f- 3.txt \ 
| grep -f- 4.txt 

-f-は、パイプからの入力は、実際のファイルではなく、使用されることを意味します。

+0

Din't work。 grep: - :そのようなファイルやディレクトリはありません。 – sanjihan

+0

@sanjihan: 'grep -f <(grep -f <(grep -f 1.txt 2.txt)3.txt)4.txt'? – choroba

+0

hmm ..間違った結果を返します – sanjihan

1

次の2つの交点を見つけることができます:

$ grep -Fx -f f1.txt f2.txt 
.hehe 

その後、他の2と入力としてことを使用します。

$ grep -f <(grep -Fx -f f1.txt f2.txt) f3.txt f4.txt 
f3.txt:.hehe 
f4.txt:.hehe 

それとも、あなただけの単一の単語たい場合:

$ grep -f <(grep -f <(grep -Fx -f f1.txt f2.txt) f3.txt) f4.txt 
.hehe 
+0

hm、残念ながら、それは間違った結果を返します – sanjihan

関連する問題