2014-09-28 52 views
0

两个字符串我试图删除文件与[0][33]的sed:匹配文件

sed -i '/(\[0\]|\[33\])/d' file.txt

开始行似乎并不虽然做的伎俩。我错过了什么?

+0

'的sed的/^\(0 \ | 33 \)// G'file.txt' – DOOM 2014-09-28 05:07:52

+1

您需要躲避管,括号和添加一个锚:'sed的-i“/^\(\ [\ 0 \] \ | \ [33 \] \)/ d'file.txt'或更好:'sed -i'/^\ [\(0 \ | 33 \)\]/d' .txt' – 2014-09-28 05:23:47

+0

@CasimiretHippolyte谢谢你的工作!你可以让它成为答案,所以我可以upvote – penu 2014-09-28 05:48:23

回答

0

只是打印这是不符合[0][33]启动线,

sed -nr '/^\[(0|33)\]/!p' file 

要保存您需要添加在线编辑-i选项的变化。

sed -nri '/^\[(0|33)\]/!p' file 
+0

如果我想编辑文件会标志是 - 尼尔? – penu 2014-09-28 05:11:31

+0

那么它会是'sed -nri'/^\ [(0 | 33)\] /!p'file' – 2014-09-28 05:17:21