GNU/Linux >> Tutoriels Linux >  >> Linux

Comment recherchez-vous des fichiers contenant des fins de ligne DOS (CRLF) avec grep sous Linux ?

grep n'est probablement pas l'outil que vous voulez pour cela. Il imprimera une ligne pour chaque ligne correspondante dans chaque fichier. À moins que vous ne vouliez, par exemple, exécuter des tâches 10 fois sur un fichier de 10 lignes, grep n'est pas la meilleure façon de procéder. Utiliser find pour exécuter file sur chaque fichier de l'arborescence, puis parcourir cela pour "CRLF" vous donnera une ligne de sortie pour chaque fichier qui a des fins de ligne de style dos :

find . -not -type d -exec file "{}" ";" | grep CRLF

vous obtiendrez quelque chose comme :

./1/dos1.txt: ASCII text, with CRLF line terminators
./2/dos2.txt: ASCII text, with CRLF line terminators
./dos.txt: ASCII text, with CRLF line terminators

Utilisez Ctrl +V , Ctrl +M pour entrer un caractère de retour chariot littéral dans votre chaîne grep. Donc :

grep -IUr --color "^M"

fonctionnera - si le ^M il y a un CR littéral que vous saisissez comme je l'ai suggéré.

Si vous voulez la liste des fichiers, vous voulez ajouter le -l également.

Explication

  • -I ignorer les fichiers binaires
  • -U empêche grep de supprimer les caractères CR. Par défaut, il le fait s'il décide qu'il s'agit d'un fichier texte.
  • -r lire tous les fichiers sous chaque répertoire de manière récursive.

Utilisation de RipGrep :

rg -l \r
-l, --files-with-matches
Only print the paths with at least one match.

https://github.com/BurntSushi/ripgrep


Linux
  1. Rechercher rapidement des fichiers sous Linux avec la commande Locate

  2. Comment auditer les modifications apportées aux fichiers et les exécutions de fichiers sous Linux

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

  4. Comment trouver des fichiers texte ne contenant pas de texte sous Linux ?

  5. Comment puis-je trouver tous les fichiers contenant du texte spécifique sous Linux ?

Conseils pour lister les fichiers avec ls sur la ligne de commande Linux

Comment rechercher des fichiers sous Linux avec la commande Find

Linux :Comment partager des fichiers sur un réseau local avec woof

Comment effectuer une recherche de modèle dans les fichiers à l'aide de Grep

Comment rechercher des fichiers à partir de la ligne de commande Linux

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