文件中的替换数字

Replacement digits in file

我有一个包含时间戳的行的文件,这是一个示例:

Event   IND200G5200Z5        20151104-030035        20151104-030000+0300    C      5280    10      20151104-025958+0300    OCP      5281    7
Event   IND207X3200Z5        20151104-065436        20151104-030003+0300    UOF      5280    9       20151104-025958+0300    OCP      5281    7

我想删除第三列中的最后 2 位数字来得到这个:

Event   IND200G5200Z5        20151104-0300        20151104-030000+0300    C      5280    10      20151104-025958+0300    OCP      5281    7
Event   IND207X3200Z5        20151104-0654        20151104-030003+0300    UOF      5280    9       20151104-025958+0300    OCP      5281    7

有很多行具有不同的时间戳,我只需要删除最后 2 行。我不想使用 awk,我需要将更改保存在同一个文件中。我试过这样的事情:

sed -i 's/d{8}[-]d{6}/d{8}[-]d{4}/'
sed -i 's/\-[0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]/'

不幸的是,这不起作用。

sed 's/-\([0-9]\{4\}\)[0-9]\{2\}/\-/' file

这可能对你有用 (GNU sed):

sed -ri 's/(\S+)\S\S//3' file

从整体上看数据,这会删除第三组非space字符的最后两个非space字符。