繁体   English   中英

Sed使用正则表达式从文件中删除时间戳

[英]Sed remove time stamp from file with regex

我正在尝试使用sed从html文件中删除模式。 时间戳由1-2位数字和四个字母单词组成,然后是单词前面

例:

25 mins ago

要么:

1 hour ago

等等。 我尝试过像这样使用sed:

sed -i "s/([0-9]{1,2}) [a-z]* ago//g"

Sed什么都不做,我不确定我的正则表达式是错误的,还是我没有正确地逃避角色。

编辑:我通过删除额外的空间来修复该表达式,感谢choroba。 现在sed从文件中删除文本的mos。 表达需要不那么贪心? 还应该提一下,时间戳被> <例子包围:

>1 hour ago<

编辑:这对我有用。 谢谢ravoori。

sed -i 's/[0-9]\{,2\} [[:alpha:]]\{4,5\} ago//g'

任何帮助表示赞赏!

试试下面的内容。 您需要使用sed转义量词元字符{}

echo "1 hour ago" | sed  's/[0-9]\{,2\} [[:alpha:]]\{4\} ago//g'
 echo "1 hour ago" | sed -e 's/.*ago$//g'

要么

 sed -e 's/.*ago$//g' <filename>

这应该删除与结尾的行agofilename

如果您有其他行而不仅仅是以ago结束的时间戳,您可能不想使用它。 你没有指定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM