2015-06-23 16 views
5

Tôi đang cố gắng để phân tích một file log mà bắt đầu với một cột ngày định dạng: 06/22/2015 00:17:59awk - quá nhiều tập tin mở vấn đề/ngày phân tích

Tôi đang sử dụng đoạn mã sau để chuyển đổi nó thành một dấu thời gian unix :

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

Tuy nhiên, khi tôi làm điều này, awk thất bại với lỗi sau:

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

Bất kỳ cách nào để giải quyết vấn đề này hoặc phân tích ngày khác nhau?

Trả lời

13

Vấn đề của bạn là bạn cần phải đóng lệnh của bạn:

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

Nếu bạn không làm điều này, một đường ống mới được mở ra cho mỗi bản ghi trong tập tin đầu vào của bạn, dẫn đến các vấn đề mà bạn đang trải qua.

Các vấn đề liên quan