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

时间:2013-11-29 06:57:21

标签: 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格式的行?

2 个答案:

答案 0 :(得分:3)

使用内联编辑标记可以使用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

grep '^[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. 

答案 1 :(得分:1)

awk

相同
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.