文件中的替换数字
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字符。
我有一个包含时间戳的行的文件,这是一个示例:
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字符。