使用GNU awk。目前尚不清楚哪些領域你真正得到的時間戳來自所以這裏印刷的一些例子使用輸入文件:
只使用1 $:
$ gawk '{s=mktime(gensub(/-/," ","g",$1" 0 0 0")); print s,s}' file
1352959200 1352959200
1352872800 1352872800
1352872800 1352872800
1352872800 1352872800
使用$ 1和$ 2:
$ gawk '{s=mktime(gensub(/[-:]/," ","g",$1" "$2)); print s,s}' file
1352997300 1352997300
1352919780 1352919780
1352920380 1352920380
1352920980 1352920980
使用$ 3上:
$ gawk '{sub($1" "$2" ","");s=mktime($0); print s,s}' file
1352996520 1352996520
1352919780 1352919780
1352920380 1352920380
1352920980 1352920980
如果你沒有GAWK:
$ awk '{ ("date -d \" "$1" \" +%s") | getline s; print s,s}' file
1352959200 1352959200
1352872800 1352872800
1352872800 1352872800
1352872800 1352872800
編輯:更新後如何使用該系統()(不推薦):
把這個shell命令行:
$ printf "%s %s\n" $(date -d 2012/11/15 +%s) $(date -d 2012/11/15 +%s)
1352959200 1352959200
,並在AWK系統()調用它:
$ awk '{system("printf \"%s %s\n\" $(date -d " $1 " +%s) $(date -d " $1 " +%s)")}' file
1352959200 1352959200
1352872800 1352872800
1352872800 1352872800
1352872800 1352872800
+1對於樣本輸入,預期輸出和一些代碼。祝你好運。 – shellter