私は次のコマンドを持っています:
grep -Pvi ".(\.var|\.foo|\.varfoo)$" myfile.txt > newfile.txt
注:.var、.foo、および.varfoo(および他の多くのエントリ)はmyfile.txtの行です。
私のファイル.txt:
.var
.foo
.varfoo
.xxx.var
.yyy.foo
.zzz.varfoo
このコマンドはうまく機能し、何をすべきかを行います(.var、.foo、.varfooで終わる行はすべて削除しますが、3つは保持します)。コマンドを実行した後:
新しいファイル.txt
.var
.foo
.varfoo
これで、コマンドに入れないように、.var、.foo、.varfooを "greplist.txt"に入れて "grep"が読み取られるようにする必要があります。
greplist.txt
.var
.foo
.varfoo
どうすればいいですか?
答え1
これには2つの課題があります。
-P
シングルモードのみサポート- ファイルの各行は、テキスト自体だけでなく完全なパターンでなければなりません。
だからそれを設定するgreplist.txt
と
.\.var$
.\.foo$
.\.varfoo$
その後実行
grep -vi -f greplist.txt myfile.txt > newfile.txt
あなたが探しているものを手に入れる必要があります。