用 sed 实现比较麻烦,可以用 awk:
awk -F"|" '{if($8 ~ /[0-9]{4}-[0-9]{2}-[0-9]{2}\ [0-9]{2}:[0-9]{2}:[0-9]{2}/) {print}}' Input > Output
Input 是需要处理的文件, Output 是输出文件。awk 不提供直接修改文件的功能。[0-9]{4} 是正则表达式表示4个数字,其它类似。
awk -F"|" '{if($8~/.*-*-.*:.*:/) print}' 1.txt
这事awk足够了。perl大材小用。