2016-09-16 5 views
0

grepでregexを使用し、ファイルのパターンを使用して別のファイルを検索できることがわかっています。しかし、これらの2つのオプションを組み合わせることはできますか?2つのファイルを使用中にgrepで正規表現を使用する

たとえば、パターンの元のファイル(ファイルの使用パターンの-fオプション付き)から、最初の列を使用して2番目のファイルを検索したいだけです。

grep -E '^(*)\b' -f file_1 file_2 > file_3 

*はワイルドカードでfile_1から最初の列をgrepするには、それが動作していない:

は、私はこれを試してみました。何か案は?

+0

私は例を挙げることができますが、答えが私の問題を解決しました。標準入力からのグレープは、ここでの解決策でした。私はそれが可能だったことを知っていなかった^^ – JFS31

答えて

1

Grepはパターンにワイルドカードを使用しません。正規表現を使用するので、(*)は意味がありません。ソースファイルとして特別-(つまり標準入力)を使用してgrep

あなたは、ファイルの最初の列を抽出cut -f1awk '{print $1}'使用(またはsedまたはperlをするかを抽出するために何でも)したい場合は、リダイレクト:

cut -f1 file1 | grep -f- file_2 > file_3 
+0

ありがとう。それはとてもうまくいく。 grepのためのトリックを知らないでください:) – JFS31

関連する問題