Domanda

Sto cercando alcuni strumenti di comando per Linux che possano aiutarmi a rilevare e convertire i file da set di caratteri come ISO-8859-1 e Windows-1252 a UTF-8 e dalle finali della linea di Windows alle finali della linea UNIX.

Il motivo per cui ho bisogno di questo è che sto lavorando a progetti sui server Linux tramite SFTP con editori su Windows (come il testo sublime) che avvita costantemente queste cose. In questo momento immagino che la metà dei miei file lo sia UTF-8, il resto è ISO-8859-1 e Windows-1252 Poiché sembra che il testo sublime stia solo raccogliendo i caratteri set per i simboli che il file contiene quando lo salvo. Le finali della linea sono sempre finali della linea di Windows anche se ho specificato nelle opzioni che sono i finali della linea predefiniti Lf, quindi circa la metà dei miei file ha Lf e la metà è Crlf.

Quindi avrei bisogno di almeno uno strumento che scansionerebbe ricorsivamente la mia cartella del progetto e mi avviserebbe di file che si discostano UTF-8 insieme a Lf finali di linea in modo da poterlo aggiustare manualmente prima di commettere le mie modifiche a Git.

Eventuali commenti ed esperienze personali sull'argomento sarebbero anche benvenute.

Grazie


Modificare: Ho una soluzione temporanea in atto dove uso tree e file Per ottenere informazioni su ogni file nel mio progetto, ma è un po 'traballante. Se non includo il -i opzione per file Quindi molti dei miei file ottengono output diversi come Testo del programma ASCII C ++ e Testo del documento HTML e Testo inglese eccetera:

$ tree -f -i -a -I node_modules --noreport -n | xargs file | grep -v directory
./config.json:              ASCII C++ program text
./debugserver.sh:           ASCII text
./.gitignore:               ASCII text, with no line terminators
./lib/config.js:            ASCII text
./lib/database.js:          ASCII text
./lib/get_input.js:         ASCII text
./lib/models/stream.js:     ASCII English text
./lib/serverconfig.js:      ASCII text
./lib/server.js:            ASCII text
./package.json:             ASCII text
./public/index.html:        HTML document text
./src/config.coffee:        ASCII English text
./src/database.coffee:      ASCII English text
./src/get_input.coffee:     ASCII English text, with CRLF line terminators
./src/jtv.coffee:           ASCII English text
./src/models/stream.coffee: ASCII English text
./src/server.coffee:        ASCII text
./src/serverconfig.coffee:  ASCII text
./testserver.sh:            ASCII text
./vendor/minify.json.js:    ASCII C++ program text, with CRLF line terminators

Ma se includo -i non mi mostra terminatori di linea:

$ tree -f -i -a -I node_modules --noreport -n | xargs file -i | grep -v directory
./config.json:              text/x-c++; charset=us-ascii
./debugserver.sh:           text/plain; charset=us-ascii
./.gitignore:               text/plain; charset=us-ascii
./lib/config.js:            text/plain; charset=us-ascii
./lib/database.js:          text/plain; charset=us-ascii
./lib/get_input.js:         text/plain; charset=us-ascii
./lib/models/stream.js:     text/plain; charset=us-ascii
./lib/serverconfig.js:      text/plain; charset=us-ascii
./lib/server.js:            text/plain; charset=us-ascii
./package.json:             text/plain; charset=us-ascii
./public/index.html:        text/html; charset=us-ascii
./src/config.coffee:        text/plain; charset=us-ascii
./src/database.coffee:      text/plain; charset=us-ascii
./src/get_input.coffee:     text/plain; charset=us-ascii
./src/jtv.coffee:           text/plain; charset=us-ascii
./src/models/stream.coffee: text/plain; charset=us-ascii
./src/server.coffee:        text/plain; charset=us-ascii
./src/serverconfig.coffee:  text/plain; charset=us-ascii
./testserver.sh:            text/plain; charset=us-ascii
./vendor/minify.json.js:    text/x-c++; charset=us-ascii

Anche perché viene visualizzato chatset = US-ASCII e non UTF-8? E cosa Testo/X-C ++? C'è un modo per poter ottenere solo charset=utf-8 e line-terminators=LF per ogni file?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top