awk – Trop de problèmes de fichiers ouverts / d’parsing de date

J’essaie d’parsingr un fichier journal qui commence par une colonne de date formatée: 06/22/2015 00:17:59

J’utilise le code suivant pour le convertir en horodatage unix:

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

Cependant, lorsque je fais cela, awk échoue avec l’erreur suivante:

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

Un moyen de gérer cela ou d’parsingr différemment la date?

Votre problème est que vous devez fermer votre commande:

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

Si vous ne le faites pas, un nouveau canal est ouvert pour chaque enregistrement de votre fichier d’entrée, ce qui entraîne le problème que vous rencontrez.