麻烦使用Grep -v

时间:2012-10-18 05:15:19

标签: scripting grep

我目前正在尝试删除包含该行

的文本文件中的每一行

“事件/ d:X:Y:Z:pmts1 [122]:pmts2 [122]:漂移:托特/ d:S1:S2:S1Top:S1Bot:S2Top:S2Bot:logS2S1:pseudo_z:pseudo_z_s2”。< / p>

我认为通过以下方式使用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。

有人能告诉我我做错了什么吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果第一个字符是双引号“”,则可以将模式放在单引号中。

答案 1 :(得分: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