我有一个文件:START.txt
,其中包含以下行:
13.03.2013 12:13:42|STRING1|NUMBER1|NUMBER2|NUMBER3
我希望将此文件中的所有行更改为以下格式:
12:13|STRING1|NUMBER1|NUMBER2|NUMBER3
如何做到这一点?
答案 0 :(得分:3)
这是awk
awk '{sub(/:[0-9]+\|/,"|",$2);print $2}' file
12:13|STRING1|NUMBER1|NUMBER2|NUMBER3
只需从第二部分删除秒并打印即可。
答案 1 :(得分:2)
试试这个GNU sed
命令,
$ sed -r 's/^[^ ]+? ([0-9]{2}:[0-9]{2}):[0-9]{2}(.*)$/\1\2/g' file
12:13|STRING1|NUMBER1|NUMBER2|NUMBER3
通过awk,
$ awk -F'|' -v OFS='|' '{sub (/^[^ ]+? /,"",$1); sub (/:[0-9]{2}$/,"",$1);}1' file
12:13|STRING1|NUMBER1|NUMBER2|NUMBER3
答案 2 :(得分:1)
答案 3 :(得分:1)
使用awk
:
$ awk 'BEGIN{FS=OFS="|"}{split($1,fld,/[.: ]/);$1=fld[4]":"fld[5]}1' file
12:13|STRING1|NUMBER1|NUMBER2|NUMBER3
|
。 .
和:
,并将值放入数组fld
中。 1
打印该行(这是说{print $0}
的惯用方式。