如何使用Sed将通配符替换为空格

如何使用Sed将通配符替换为空格,sed,Sed,这是我的意见: list toblock '123 456' 如何使用sed将列表toblock替换为带有空格的通配符,因为此代码不起作用 sed -i "s/list toblock '*.'/list maclist 'sampletoreplace'/g" 是你需要的,不是。表示任意字符,*表示重复任意次数,包括0次。 sed也是一个行流编辑器,因此默认情况下,匹配将限制在当前行内 如果要匹配多条线路,最简单的方法是使用-z开关GNU sed: echo "list toblock '

这是我的意见:

list toblock '123
456'
如何使用sed将列表toblock替换为带有空格的通配符,因为此代码不起作用

sed -i "s/list toblock '*.'/list maclist 'sampletoreplace'/g"
是你需要的,不是。表示任意字符,*表示重复任意次数,包括0次。 sed也是一个行流编辑器,因此默认情况下,匹配将限制在当前行内

如果要匹配多条线路,最简单的方法是使用-z开关GNU sed:

echo "list toblock '123
456'"|sed -z "s/list toblock '.*'/list maclist 'sampletoreplace'/g"
list maclist 'sampletoreplace'
但由于sed通常与RegEx贪婪模式一起工作,并且不支持。*?请停止贪婪模式,因此您可能希望更改为:

sed -z "s/list toblock '[^']*'/list maclist 'sampletoreplace'/g"

其中[^']表示任何不是“.”的字符。

不清楚,请提供您要替换的内容的详细信息。另外,请将您的示例包装在名为代码标记的{}按钮中,完成后请通知我们。list toblock“第一到BlockNewLine2到block”我想用list toblock“sampletoreplace”替换所有list toblock内容请用代码标记中预期输出的示例编辑您的帖子,然后通知我们,评论不是用来发布样本的。@apokalypto是列出要锁定的“sampletoreplace”还是列出maclist的“sampletoreplace”?因为在您自己的代码中,替代目标是后者。你可以通过提问来显示你想要的结果。“编辑”按钮位于问题下方的“共享”和“标记”之间。请更新您的问题,以在上下文中显示当前的2个输入行,其中包含输入文件中的其他相关行,并添加给定该输入的预期输出。我怀疑您真正想问的问题是如何处理跨越多行的单引号中的字符串,但您的问题非常不清楚。