我正在尝试匹配类似#key = *
的模式,并使用sed和正则表达式将其替换为key = 1
。
这是我的命令:
sed -r -e "s/#s*keys*=s*[^n]*/keys*=s*1/g /tmp/test.txt"
但它给了我一个错误:
sed: -e expression #1, char 38: unknown option to `s'
这意味着什么,我该如何解决?
输入文件名不是-e
的一部分,它应该是一个单独的参数。
此外,输出中的s
不会创建空白,但您可以使用(...)
从输入中捕获空白,并使用相应的N
将其输出。
sed -r -e 's/#(s*)key(s*)=(s*).*/key2=31/g' /tmp/test.txt
$ echo '#key = *' | sed -r -e 's/#s*keys*=s*[^n]*/key = 1/'
key = 1
这是你所期望的吗?