$ ls | sed -n "/c/{/s/r/ssss/;p}"
在终端中运行此行时,我得到了:
sed:-e表达式#1,字符0:不匹配的`{'
怎么了?
答案 0 :(得分:2)
我认为其中的/
个字符太多。
您可能需要:
ls | sed -n "/c/{ s/r/ssss/;p;}"
这会从ls
中查找包含c
的行,并将第一个r
替换为ssss
并打印结果。
它可以与sed
的Mac(BSD)版本和GNU版本一起使用。在p
之后没有分号的情况下,GNU版本可以,但Mac版本则不能。
但是,可能会有其他方式来解释您要尝试执行的操作,这可能会导致使用不同的命令行。如果您要查找包含c
和s
的行,并用ssss
(可能还有其他一些字符替换整个行,则不清楚您的目标),那么您必须在sed
的GNU和Mac / BSD版本中做更多的工作。