0

現在、その行を含むテキストファイルのすべての行を削除しようとしています

"event / D:x:y:z:pmts1 [122]:pmts2 [122]:drift:Tot / D:S1:S2:S1Top:S1Bot:S2Top:S2Bot:logS2S1:pseudo_z:pseudo_z_s2"。

次の方法でgrep-vを使用すると、これを非常に簡単に実行できると思いました。

grep -v  "event/D:x:y:z:pmts1[122]:pmts2[122]:drift:Tot/D:S1:S2:S1Top:S1Bot:S2Top:S2Bot:logS2S1:pseudo_z:pseudo_z_s2" data.txt >> NewData.txt

ただし、コマンドは無限ループなどでスタックしているようで、data.txtの行はNewData.txtに追加されていません。

誰かが私が間違っていることを教えてもらえますか?前もって感謝します!

4

2 に答える 2

0

最初の文字が二重引用符 '"' の場合は、パターンを一重引用符で囲むことができます。

于 2012-10-18T05:18:15.023 に答える
0

を使用してメタ文字をエスケープする必要があります\。試す:

grep -v "event\/D:x:y:z:pmts1\[122\]:pmts2\[122\]:drift:Tot\/D:S1:S2:S1Top:S1Bot:S2Top:S2Bot:logS2S1:pseudo_z:pseudo_z_s2" file.txt > newfile.txt

がある場合は、フラグGNU sedを使用して変更をファイルに直接書き込むことができます。-i

sed -i '/event\/D:x:y:z:pmts1\[122\]:pmts2\[122\]:drift:Tot\/D:S1:S2:S1Top:S1Bot:S2Top:S2Bot:logS2S1:pseudo_z:pseudo_z_s2/d' file.txt
于 2012-10-18T05:45:09.003 に答える