我想替换文件中的日志命令并输出到另一个文件
我的日志命令可以像
log(xxx);
log ( xxx);
所以我使用以下
cat input.txt | sed -e '/\s*log\s*\(.*\)/d' > output.txt
然而,它也用“逻辑”替换该行。
我应该做些什么才能让它发挥作用。
由于
答案 0 :(得分:1)
这种“腰带支撑”解决方案可能有效:
# sed '/\<log\>\s*([^)]*)/d' <<!
> a
> b
> logical(123)
> log(123)
> log ( 123)
> d
> e
> !
a
b
logical(123)
d
e
答案 1 :(得分:0)
不要逃避括号;你希望他们是文字。 (另外,据我所知,sed不支持正则表达式字符类速记。)
sed -e '/[ \t]*log[ \t]*(.*)/d' input.txt > output.txt
答案 2 :(得分:0)
如果您只想删除仅使用“log”的行,则可以使用grep。
grep -vw log input.txt >output.txt
或者,如果您只想将日志作为单个单词(而不是slog)包含在一对括号之前的可选空格之后,可以使用egrep:
egrep -v '\<log[ \t]*\(.*\)' input.txt >output.txt