我正从文本文件中删除时间戳

时间:2018-03-04 20:22:52

标签: regex perl

文本文件包含

文件名为D/DebugDB: Open http://XXX.XXX.X.XXX:8080 in your browser ,内容为

adb forward tcp:8080 tcp:8080

我想删除时间戳,输出应该是

clean.txt

我尝试在命令行上运行

20170524201630.600|20170524201632.760|CC1|Mir wurde ganz schwer ums Herz.
20170524201633.280|20170524201634.600|CC1|Ich hoffte und betete,

但我得到了结果。这里有什么问题?

2 个答案:

答案 0 :(得分:2)

无需使用-0777读取整个文件:

$ perl -pe 's/.*\|//g' file
Mir wurde ganz schwer ums Herz.
Ich hoffte und betete,

或者如果您需要更具体:

$ perl -pe 's/^(\d{14}\.\d{3}\|)+[A-Z]{2}\d+\|//g' file

答案 1 :(得分:0)

我愿意:

perl -0777 -pe 's/([^CC1|]+)$//gm'  clean.txt 

现场演示here

简要说明:

  • ([^CC1|]) 匹配括号中没有的单个字符
  • \+量词 - 在一次和无限次之间匹配
  • $在一行结尾处断言位置
  • g修饰符:全局。所有比赛(首场比赛后不返回)
  • m修饰符:多行。导致^和$匹配每个的开始/结束 line(不仅是字符串的开头/结尾)