如何使用sed

时间:2016-10-03 17:06:34

标签: regex sed

我正在尝试匹配#key = *之类的模式,并使用sed和正则表达式将其替换为key = 1

这是我的命令:

sed -r -e "s/#\s*key\s*=\s*[^\n]*/key\s*=\s*1/g /tmp/test.txt"

但它给了我错误:

sed: -e expression #1, char 38: unknown option to `s'

这是什么意思,我该如何解决?

2 个答案:

答案 0 :(得分:1)

输入文件名不是\s的一部分,它应该是一个单独的参数。

此外,输出中的(...)不会创建空格,但您可以使用\N从输入中捕获空白,并使用相应的sed -r -e 's/#(\s*)key(\s*)=(\s*).*/key\2=\31/g' /tmp/test.txt 输出。

{{1}}

答案 1 :(得分:0)

$ echo '#key = *' | sed -r -e 's/#\s*key\s*=\s*[^\n]*/key = 1/'
key = 1

这是你期望的吗?