Regex 如何删除与HH:MM模式不匹配的所有内容?

Regex 如何删除与HH:MM模式不匹配的所有内容?,regex,bash,sed,Regex,Bash,Sed,因此,我有一个csv文件,其中包含所有时间,但有一些其他外来文本: 07:56 p.m. le: iTune ap: Apple 05:45 a.m. 01:23 p.m. 10:yh 12:20 p.m. gh:50 ke: The n 是否有一个sed命令可以过滤掉所有没有HH:MM格式的行?此sed可以使用内联编辑标志: sed -i.bak -n '/^[0-9][0-9]:[0-9][0-9]/p' file cat fi

因此,我有一个csv文件,其中包含所有时间,但有一些其他外来文本:

07:56 p.m. 
le: iTune
ap: Apple   
05:45 a.m.         
01:23 p.m.     
10:yh      
12:20 p.m.      
gh:50
ke: The n
是否有一个sed命令可以过滤掉所有没有HH:MM格式的行?

此sed可以使用内联编辑标志:

sed -i.bak -n '/^[0-9][0-9]:[0-9][0-9]/p' file

cat file
07:56 p.m. 
05:45 a.m.         
01:23 p.m.     
12:20 p.m. 
您也可以使用grep:

此sed可以使用内联编辑标志:

sed -i.bak -n '/^[0-9][0-9]:[0-9][0-9]/p' file

cat file
07:56 p.m. 
05:45 a.m.         
01:23 p.m.     
12:20 p.m. 
您也可以使用grep:

awk也一样

awk也一样


哇,反应时间真是太棒了!谢谢,两个都很好,只是好奇,哪一个运行得更快,因为我有一个包含10000个时间条目的csv文件..grep或sed会更快吗?最好使用sed,这样可以在不同的文件中保存输出的1个步骤,但首先要备份:好的,非常感谢!我爱这个社区!每个人都互相帮助。非常感谢你的帮助!非常欢迎您,很高兴它为您解决了问题。我可以建议/^[0-2][0-9]:[0-5][0-9]/p'或[0-1][0-9]如果使用上午和下午,那么响应时间非常棒!谢谢,两个都很好,只是好奇,哪一个运行得更快,因为我有一个包含10000个时间条目的csv文件..grep或sed会更快吗?最好使用sed,这样可以在不同的文件中保存输出的1个步骤,但首先要备份:好的,非常感谢!我爱这个社区!每个人都互相帮助。非常感谢你的帮助!非常欢迎,很高兴它为您解决了问题。如果使用上午和下午,我可以建议/^[0-2][0-9]:[0-5][0-9]/p'或[0-1][0-9]吗
awk '/^[0-9][0-9]:[0-9][0-9]/' file
07:56 p.m.
05:45 a.m.
01:23 p.m.
12:20 p.m.