grep probablemente no sea la herramienta que desea para esto. Imprimirá una línea por cada línea coincidente en cada archivo. A menos que quiera, digamos, ejecutar todos 10 veces en un archivo de 10 líneas, grep no es la mejor manera de hacerlo. Al usar find para ejecutar el archivo en cada archivo en el árbol y luego buscar "CRLF" obtendrá una línea de salida para cada archivo que tiene terminaciones de línea de estilo dos:
find . -not -type d -exec file "{}" ";" | grep CRLF
obtendrá algo como:
./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
Utilice Ctrl +V , Ctrl +M para ingresar un carácter de retorno de carro literal en su cadena grep. Entonces:
grep -IUr --color "^M"
funcionará - si el ^M
hay un CR literal que ingresaste como sugerí.
Si desea la lista de archivos, desea agregar el -l
opción también.
Explicación
-I
ignorar archivos binarios-U
evita que grep elimine los caracteres CR. Por defecto hace esto si decide que es un archivo de texto.-r
leer todos los archivos en cada directorio de forma recursiva.
Usando RipGrep:
rg -l \r
-l, --files-with-matches
Only print the paths with at least one match.
https://github.com/BurntSushi/ripgrep