0

このコマンドgrep -vf 1.txt 2.txt > 3.txtは、あるものとない3.txtものを入力しますが、(0-9) を持つ文字列のみを比較するにはどうすればよいですか?2.txt1.txtgrep

Example:

(0001) compare  
test   ignore  
984    ignore  
(10)   compare  
(1242342542) compare  
4

3 に答える 3

1

パターンに一致する結果のみを保持したい場合は、単純に出力を後処理できます。

grep -vf 1.txt 2.txt | grep '([0-9]\+)' > 3.txt

または、1.txtパターンに一致する行のみを比較に使用する場合は、次のようにします。

grep -vf <(grep "([0-9]\+)" 1.txt) 2.txt > 3.txt
于 2012-11-19T14:02:48.110 に答える
0

簡単な方法は次のとおりです。

3.txtに保存する前に、結果をにパイプしますgrep -E '[0-9]+' > 3.txt

次のようになります: grep -vf.... |grep -E '[0-9]+' > 3.txt

1.txt、2.txt、および予想される3.txtの例をいくつか挙げると、効率的な方法がある可能性があります。

于 2012-11-19T14:07:24.780 に答える
0

これもうまくいくはずです:

awk 'FNR==NR {arr[$0];next} !($1 in arr)' 1.txt 2.txt

よろしく

于 2012-11-19T14:35:51.580 に答える