このコマンドgrep -vf 1.txt 2.txt > 3.txt
は、あるものとない3.txt
ものを入力しますが、(0-9) を持つ文字列のみを比較するにはどうすればよいですか?2.txt
1.txt
grep
Example:
(0001) compare
test ignore
984 ignore
(10) compare
(1242342542) compare
パターンに一致する結果のみを保持したい場合は、単純に出力を後処理できます。
grep -vf 1.txt 2.txt | grep '([0-9]\+)' > 3.txt
または、1.txt
パターンに一致する行のみを比較に使用する場合は、次のようにします。
grep -vf <(grep "([0-9]\+)" 1.txt) 2.txt > 3.txt
簡単な方法は次のとおりです。
3.txtに保存する前に、結果をにパイプしますgrep -E '[0-9]+' > 3.txt
次のようになります:
grep -vf.... |grep -E '[0-9]+' > 3.txt
1.txt、2.txt、および予想される3.txtの例をいくつか挙げると、効率的な方法がある可能性があります。
これもうまくいくはずです:
awk 'FNR==NR {arr[$0];next} !($1 in arr)' 1.txt 2.txt
よろしく