GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver des fichiers au format dos dans un système de fichiers Linux

j'ai eu de la chance avec

find . -name "*.php" -exec grep -Pl "\r" {} \;

Que diriez-vous :

find . -name "*.php" | xargs file | grep "CRLF"

Je ne pense pas qu'il soit fiable d'essayer d'utiliser ^M pour essayer de trouver les fichiers.


Vous ne savez pas exactement ce que vous entendez par "non fiable", mais vous pouvez essayer :

find . -name '*.php' -print0 | xargs -0 grep -l '^M$'

Cela utilise le plus atrocious-filenames-with-spaces-in-them-friendly options et ne trouve que les retours chariot immédiatement avant la fin de la ligne.

Gardez à l'esprit que le ^M est un seul CTRL M caractère, pas deux caractères.

Et aussi qu'il listera les fichiers où même un La ligne est en mode DOS, ce qui est probablement ce que vous voulez de toute façon, car il s'agirait de fichiers UNIX mutilés par un éditeur non UNIX.

D'après votre mise à jour, vim signale vos fichiers au format DOS :

Si vim est en le signalant au format DOS, puis chaque la ligne se termine par CRLF . C'est ainsi que fonctionne vim. Si même un la ligne n'a pas CR , alors il est considéré comme le format UNIX et le ^M les caractères sont visibles dans le tampon. Si tout est au format DOS, le ^M les caractères ne sont pas affichés :

Vim recherchera à la fois les fins de ligne dos et unix, mais Vim a une préférence intégrée pour le format unix.

- Si toutes les lignes du fichier se terminent par CRLF, le format de fichier dos sera appliqué, ce qui signifie que chaque CRLF est supprimé lors de la lecture des lignes dans un tampon, et l'option 'ff' du tampon sera dos.
- Si une ou plusieurs lignes se terminent par LF uniquement, le format de fichier unix sera appliqué, ce qui signifie que chaque LF est supprimé (mais chaque CR sera présent dans le tampon, et s'affichera sous la forme ^M), et le tampon 'ff' l'option sera unix.

Si vous vraiment voulez savoir ce qu'il y a dans le fichier, ne comptez pas sur un outil trop intelligent comme vim :-)

Utiliser :

od -xcb input_file_name | less

et vérifiez vous-même les fins de ligne.


Linux
  1. Comment convertir des fichiers en codage UTF-8 sous Linux

  2. Comment trouver un fichier sous Linux

  3. Comment trouver des fichiers en double sous Linux

  4. Trouver tous les fichiers Python dans le système de fichiers Linux ?

  5. Comment lister les fichiers avec des chemins complets sous Linux ?

Comment trouver des fichiers dans Debian 10

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment trouver des fichiers modifiés au cours des dernières 24 heures sous Linux

Comment compresser un fichier sous Linux