我目前正在尝试删除包含该行
的文本文件中的每一行“事件/ 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。
有人能告诉我我做错了什么吗?提前谢谢!
答案 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