我有一个示例文本文件,其中包含如下所示的行:
/home0/abc/xyz/Example1.java: // log.error("error" , exception);
/home0/abc/xyz/Example2.java: log.error("error" , exception);
/home0/abc/xyz/Example3.java: // log.error("error" , exception);
/home0/abc/xyz/Example4.java: log.error("error" , exception);
如何在shell脚本中删除包含双正斜杠(即包含注释的行)的所有行。
我的最终输出应如下所示:
/home0/abc/xyz/Example2.java: log.error("error" , exception);
/home0/abc/xyz/Example4.java: log.error("error" , exception);
答案 0 :(得分:3)
你可以使用grep,
grep -v '//' file
来自grep --help
,
-v, --invert-match select non-matching lines
通过sed,
sed '/\/\//d' file
上面的sed命令会删除那些包含两个正斜杠的行。上述sed的语法是sed '/regex/d' file
。因为/
用作sed分隔符,所以按顺序转义正则表达式中的斜杠以匹配文字正斜杠。
通过awk,
awk '!/\/\//' file
!
否定模式并强制awk打印不包含//
答案 1 :(得分:2)
在grep中你应该像这样使用-v选项
grep -v pattern filename
-v -used用于反转模式匹配。
在sed
sed '/\/\//d' filename
d - 删除模式匹配的行。
答案 2 :(得分:1)
在vi或vim编辑器中,执行以下操作:
:g/\/\//d
是:冒号,g,斜线,反斜线,斜线,反斜线,斜线,斜线,d