使用带 sed 的正则表达式用下划线替换空格
Use regex with sed to replace spaces by underscore
我需要用 sed 将文件中以下 PCRE 的所有匹配项替换为下划线。
/(?:^Node-path: |\G)\S+\K\h+/gm
我试过转义括号,删除 G、S、K 的转义……但仍然无法正常工作。
有人可以帮忙吗?
如果您的 sed 是 gnu sed,您可以混合使用 NUMBER
和 g
修饰符以跳过第一个 space:
sed '/^Node-path:/s/ /_/2g'
如果您的 sed 不是 gnu sed,NUMBER+g
可能不受支持。但是你可以做这个技巧:
sed '/^Node-path:/{s/ /_/g;s/_/ /}'
或
sed '/^Node-path:/{s/ /_/g;s/:_/: /}'
我需要用 sed 将文件中以下 PCRE 的所有匹配项替换为下划线。
/(?:^Node-path: |\G)\S+\K\h+/gm
我试过转义括号,删除 G、S、K 的转义……但仍然无法正常工作。
有人可以帮忙吗?
如果您的 sed 是 gnu sed,您可以混合使用 NUMBER
和 g
修饰符以跳过第一个 space:
sed '/^Node-path:/s/ /_/2g'
如果您的 sed 不是 gnu sed,NUMBER+g
可能不受支持。但是你可以做这个技巧:
sed '/^Node-path:/{s/ /_/g;s/_/ /}'
或
sed '/^Node-path:/{s/ /_/g;s/:_/: /}'