2015-06-23 39 views
5

我試圖解析與格式化的日期列開始一個日誌文件: 06/22/2015 00:17:59AWK - 打開的文件太多問題/日期解析

我用下面的代碼,將其轉換爲Unix時間戳:

unix="date -d\""$1" "$2"\" \"+%s\""; unix | getline timestamp;

然而,當我這樣做時,awk失敗,以下錯誤:

awk: (FILENAME=/dev/fd/63 FNR=263350) fatal: cannot open pipe 'date -d"06/22/2015 00:17:59" "+%s"' (Too many open files)

任何方式來處理這個,或解析日期不同?

回答

13

你的問題是,你需要關閉命令:

unix="date -d\""$1" "$2"\" \"+%s\""; unix | getline timestamp; close(unix) 

如果你不這樣做,一個新的管道被打開在你的輸入文件中的每個記錄,這導致了問題,你正在經歷。