需要处理 50 多个文件,把「阅读(...)」后面的内容全部删去:
文档像是这样:
文章正文……
阅读(...) | 评论(...)
(后面一堆无用的内容)
我尝试了正则表达式,但是结果发现:
➜ grep -n "阅读(.*" 3604941420111111104532711.html
41:阅读(362)| 评论(76)
正则表达式只能返回一行的内容,而不是这一行之后的所有内容,无法满足需求。
请问用什么正则表达式可以解决?或是有其他的办法吗?
需要处理 50 多个文件,把「阅读(...)」后面的内容全部删去:
文档像是这样:
文章正文……
阅读(...) | 评论(...)
(后面一堆无用的内容)
我尝试了正则表达式,但是结果发现:
➜ grep -n "阅读(.*" 3604941420111111104532711.html
41:阅读(362)| 评论(76)
正则表达式只能返回一行的内容,而不是这一行之后的所有内容,无法满足需求。
请问用什么正则表达式可以解决?或是有其他的办法吗?
2 回答1.4k 阅读✓ 已解决
1.4k 阅读
1 回答681 阅读
1 回答670 阅读
看样子你需要的不是跨行正则表达式吧……
你需要的是不是删除匹配的那一行之后的内容?那样可以考虑获取匹配的那一行的行号,删除剩下的行号比它更大的行。
举个例子,你可以用
sed
这么做: