我正在努力转换包含字符串的文本文件:
10.04.2015 12:00:15
到
150410
日期将始终是日期格式,但是从文本文件中获取,所以据我所知我不能使用日期命令,我想我必须使用awk但我不知道它并且正在努力 - 建议会受到赞赏吗?
答案 0 :(得分:3)
您可以使用bash parameter expansion来提取子字符串
$ date="10.04.2015 12:00:15"
$ newdate=${date:8:2}${date:3:2}${date:0:2}
$ echo $newdate
150410
答案 1 :(得分:1)
以下sed
命令应该足够好了:
sed -r 's/([0-9]+)\.([0-9]+)\.[0-9]{2}([0-9]{2}) ([0-9]+:?){3}/\3\2\1/g' input
或awk
:
awk -F'[.: ]' '{print substr($3,3),$2,$1}' OFS='' input
毕竟我更喜欢后者。
答案 2 :(得分:0)
替代答案,使用awk:
DATE="10.04.2015 12:00:15"
echo $DATE | awk '{print substr($0,9,2) substr($0,4,2) substr($0,1,2)}'
如果您想稍后进行修改,可以进行一些解释:
$0
是substr操作的输入文本