【发布时间】:2013-04-16 22:33:34
【问题描述】:
我正在尝试使用 sed 从 html 文件中删除模式。时间戳由一个 1-2 位数字、一个四个字母的单词和单词 ago 组成
示例:
25 mins ago
或:
1 hour ago
等等。我试过像这样使用 sed:
sed -i "s/([0-9]{1,2}) [a-z]* ago//g"
Sed 什么都不做,我不确定我的正则表达式是否错误,或者我是否没有以正确的方式转义字符。
编辑:我通过删除额外的空格来修复该表达式,感谢 choroba。现在 sed 从文件中删除大部分文本。表达式需要不那么贪婪吗?还应该提到时间戳被> <包围
示例:
>1 hour ago<
编辑:这对我有用。谢谢拉沃里。
sed -i 's/[0-9]\{,2\} [[:alpha:]]\{4,5\} ago//g'
感谢任何帮助!
【问题讨论】:
-
*后面有两个空格。 -
谢谢,有帮助吗?它从文件中删除了所有文本。关于如何减少贪婪的任何想法?
-
示例文件是什么样的,命令运行后的预期结果是什么?
-
对表达式运行 sed 命令后要保留什么?是否保留
><并删除中间的字符? -
它是一个 HTML 文件。我希望它会删除匹配 1-2 个数字的任何字符,然后是小时或分钟,然后是之前。