Si je fais cela sur un fichier Mac, j'obtiens le nombre correct de lignes mais je double les lignes sur les fichiers Unix:
cat /path/to/file.txt | tr '\r' '\n' | wc -l
Si je fais cela sur un fichier Unix, j'obtiens le nombre correct de lignes mais aucune ligne sur un fichier Mac:
cat /path/to/file.txt | wc -l
Comment obtenir le nombre correct de lignes dans une seule commande, quelle que soit l'origine du système de fichiers (Linux, Mac, Windows)?
command-line
EcomEvo
la source
la source
\n
partir de Mac OS X 10.0 (2001). Avez-vous vraiment obtenir d'anciens fichiers Mac avec\r
?Réponses:
Je suggérerais d'inspecter les fichiers que vous traitez en fonction du style de saut de ligne utilisé.
va imprimer le contenu du fichier en octets hexadécimaux et "ASCII", rechercher les octets 0A et 0D.
J'ai une fonction bash qui est définie dans ~ / .profile / ou ~ / .bashrc pour aider avec ce genre de problèmes:
la source