GNU/Linux >> Linux Esercitazione >  >> Linux

Come si cercano file contenenti terminazioni di riga DOS (CRLF) con grep su Linux?

grep probabilmente non è lo strumento che desideri per questo. Stamperà una riga per ogni riga corrispondente in ogni file. A meno che tu non voglia, diciamo, eseguire todos 10 volte su un file di 10 righe, grep non è il modo migliore per farlo. L'uso di find per eseguire file su ogni file nell'albero, quindi passare attraverso quello per "CRLF" ti darà una riga di output per ogni file che ha terminazioni di riga in stile dos:

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

ti darà qualcosa come:

./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

Usa Ctrl +V , Ctrl +M per inserire un carattere letterale di ritorno a capo nella stringa grep. Quindi:

grep -IUr --color "^M"

funzionerà - se ^M c'è una CR letterale che hai inserito come ti ho suggerito.

Se vuoi l'elenco dei file, devi aggiungere il -l anche l'opzione.

Spiegazione

  • -I ignora i file binari
  • -U impedisce a grep di eliminare i caratteri CR. Di default lo fa se decide che si tratta di un file di testo.
  • -r leggere tutti i file in ogni directory in modo ricorsivo.

Utilizzo di RipGrep:

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

https://github.com/BurntSushi/ripgrep


Linux
  1. Cerca rapidamente i file in Linux con il comando Locate

  2. Come posso cercare uno schema multilinea in un file?

  3. Come trovare file in formato DOS in un file system Linux

  4. Come trovare file di testo che non contengono testo su Linux?

  5. Come trovo tutti i file contenenti testo specifico su Linux?

Suggerimenti per elencare i file con ls nella riga di comando di Linux

Come trovare file in Linux con il comando Trova

Linux:come condividere file su una rete locale con woof

Come eseguire la ricerca del modello nei file utilizzando Grep

Come cercare file dalla riga di comando di Linux

Come trovare file contenenti una stringa di testo specifica in Linux