美好的一天,我有點新和混淆關於更換日期。我想從SED,AWK:更改日期格式
21/3/2016
在一個巨大的文件 改變所有日期至
2016-03-21T00:00:00.008Z
我做了這樣的事
sed -ri 's#([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})#date -d"\1/\2/\3"
+"%Y-%m-%dT%H:%M:%SZ"#e' file
它創建一個文件但沒有內容。 感謝推進
美好的一天,我有點新和混淆關於更換日期。我想從SED,AWK:更改日期格式
21/3/2016
在一個巨大的文件 改變所有日期至
2016-03-21T00:00:00.008Z
我做了這樣的事
sed -ri 's#([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})#date -d"\1/\2/\3"
+"%Y-%m-%dT%H:%M:%SZ"#e' file
它創建一個文件但沒有內容。 感謝推進
隨着GNU sed的:
echo "21/1/2016" | sed -E 's|/([1-9])/|/0\1/|; s|^([1-9]/)|0\1|; s|([0-9]{2})/([0-9]{1,2})/([0-9]{4})|\3-\2-\1T00:00:00.008Z|'
輸出:
2016-03-21T00:00:00.008Z
在awk中:
$ awk '{
split($0,a,"/") # split by/to a
for(i=1;i<=2;i++)
a[i]=sprintf("%02d", a[i]) # zeropad a[1] and a[2]
print a[3]"-"a[2]"-"a[1] "T00:00:00.008Z" # output
}' file
2016-03-21T00:00:00.008Z
只需使用AWK:
$ awk -F'/' '{printf "%04d-%02d-%02dT00:00:00.008Z\n", $3, $2, $1}' file
2016-03-21T00:00:00.008Z
或'awk -F /'{printf(「%d-%02d-%02d%s \ n」,$ 3,$ 2,$ 1,「T00:00:00.008Z」)}'file' – Cyrus