這個awk腳本使用系統調用將秒轉換爲時間碼。爲什麼不使用內置函數呢?出於便攜性的原因。這需要在OS X Mavericks(GNU bash,版本3.2.53,awk版本20070501)上工作,對此,內置的strftime函數不可用(據我所知)。爲什麼awk在系統調用後返回一個額外的行和「0」?
cat file
A 3000
B 3010
C 3020
我的腳本:
awk '{ printf "%s %s\n", system("date -r " $2 " -j +%H:%M:%S"), $1 }' file
返回此
01:50:00
0 A
01:50:10
0 B
01:50:20
0 C
,而我試圖在同一行上打印的第一條記錄的值作爲像這樣的時間碼:
01:50:00 A
01:50:10 B
01:50:20 C
我在做什麼錯?
如果'awk'不要所有版本有你需要的功能,也許你應該改用Perl或Python(或類似的東西)。 –