Je dois obtenir le nombre de lignes des fichiers CSV entrants.
J'ai utilisé la commande suivante pour obtenir le nombre.
wc -l filename.csv
Considérez un fichier avec 1 enregistrement, je reçois certains fichiers avec un \*
au début, et pour ces fichiers si j'émets la commande ci-dessus, il renvoie le nombre de 0
.
Pourquoi \*
au début du fichier ne s'inscrit-il pas comme une ligne comptée et y a-t-il un contournement?
linux
microsoft-excel
command-line
unix
csv
Devoloper250
la source
la source
Réponses:
Une astuce pour s'assurer que les lignes non terminées sont également comptées peut être:
Cela semble compter toutes les lignes non vides, mais ignore les lignes vides.
Veuillez noter que c'est plutôt inefficace, mais ce n'est probablement pas un problème pour une utilisation occasionnelle.
Une autre possibilité, compte toutes les lignes, y compris la dernière ligne non terminée:
Testé sur RHEL 6.2. YMMV.
la source
awk
commande fonctionne sur OS Xwc signale 0 pour les fichiers avec une seule ligne et sans retour à la ligne. Peut-être que vos fichiers csv à un enregistrement sont comme ça? Vous pouvez rechercher des sauts de ligne avec hexdump, par exemple:
Recherchez le code ascii 0a à la fin.
la source