如何在sed命令中使用正则表达式
我在某些文件中有一些具有此模式的字符串:
- domain.com/page-10
- domain.com/page-15 ....
我想用类似
- domain.com/apple-10.html的
- domain.com/apple-15.html
替换它们我发现我可以使用sed命令一次替换它们但是因为之后数字应该添加一些东西我想我必须使用正则表达式来做到这一点。但我不知道怎么办。
i have some strings with this pattern in some files:
- domain.com/page-10
- domain.com/page-15
....
and i want to replace them with something like
- domain.com/apple-10.html
- domain.com/apple-15.html
i have found that i can use sed command to replace them at a time but because after the numbers should something be added i guess i have to use regular expression to do it. but i don't know how.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
除了sed之外,你还可以使用gawk的
gensub()
Besides sed, you can also use gawk's
gensub()
([0-9]*)
捕获一组数字;替换字符串中的\1
引用捕获并将其添加为替换字符串的一部分。如果您需要保留文件的副本而不进行替换,您可能需要使用类似
-i.backup
的内容,或者只是省略 -i 并使用 I/O 重定向方法。The
([0-9]*)
captures a group of digits; the\1
in the replacement string references that capture and adds it as part of the replacement string.You may want to use something like
-i.backup
if you need to keep a copy of the file without the replacements, or just omit the -i and instead use the I/O redirection method instead.解决该问题的另一种方法是:
这里使用引用(
\1
、\2
、\3
)存储和检索搜索模式。One more way to resolve the problem:
Here the searching patterns are stored and retrieved using references (
\1
,\2
,\3
).这会起作用
This will work