文本文件包含
文件名是clean.txt
,内容是
20170524201630.600|20170524201632.760|CC1|Mir wurde ganz schwer ums Herz.
20170524201633.280|20170524201634.600|CC1|Ich hoffte und betete,
我想删除时间戳和输出应该是
Mir wurde ganz schwer ums Herz.
Ich hoffte und betete,
我试着在命令行上运行
perl -0777 -pe 's/^[1-9]\d{13}\.\d{3}\\|^[1-9]\d{13}\.\d{3}\|[A-Z]{2}[0-9]\|//g' clean.txt
但我得到了结果。这里有什么问题?
无需使用-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
我会做:
perl -0777 -pe 's/([^CC1|]+)$//gm' clean.txt
现场演示here。
简要说明:
([^CC1|])
匹配括号中没有的单个字符\+
Quantifier - 在一次和无限次之间匹配$
在一条线的末尾断言位置g
修饰符:全局。所有比赛(首场比赛后不返回)m
修饰符:多行。导致^和$匹配每行的开头/结尾(不仅是字符串的开头/结尾)