ejemplo linux dos2unix

linux - ejemplo - ¿Cómo puedo ejecutar dos2unix en un directorio completo?



dos2unix ubuntu (7)

Como me resultó poco satisfecho con dos2unix, desarrollé mi propia utilidad simple. Aparte de algunas ventajas en velocidad y previsibilidad, la sintaxis también es un poco más simple:

endlines unix *

Y si desea que se ubique en subdirectorios (omitiendo direcciones ocultas y archivos que no sean de texto):

endlines unix -r .

endlines está disponible aquí https://github.com/mdolidon/endlines

Tengo que convertir un directorio completo usando dos2unix . No soy capaz de averiguar cómo hacer esto.


Para cualquier usuario de Solaris (estoy usando 5.10, también se puede aplicar a versiones más recientes, así como a otros sistemas Unix):

dos2unix no omite sobrescribir el archivo, solo imprimirá la versión actualizada a la salida estándar, por lo que tendrá que especificar el origen y el destino, es decir, el mismo nombre dos veces:

find . -type f -exec dos2unix {} {} /;


Probablemente sea mejor omitir los archivos y carpetas ocultos, como .git. Entonces, en lugar de usar find , si su versión de bash es lo suficientemente reciente o si está usando zsh , simplemente haga lo siguiente:

dos2unix **

Tenga en cuenta que para Bash, esto requerirá:

shopt -s globstar

.... pero esta es una característica lo suficientemente útil como para que, honestamente, simplemente la ponga en su .bashrc todos modos.

Si no desea omitir los archivos y carpetas ocultos, pero aún así no quiere meterse con find (y no le culparía), puede proporcionar un segundo argumento recursivo para que coincida solo con las entradas ocultas:

dos2unix ** **/.*

Tenga en cuenta que en ambos casos, el globo se expandirá para incluir directorios, por lo que verá la siguiente advertencia (potencialmente muchas veces): Skipping <dir>, not a regular file.


Si no hay un subdirectorio, también puede tomar

ls | xargs -I {} dos2unix "{}"


Si se trata de un directorio grande, es posible que desee considerar la ejecución con varios procesadores:

find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix

Esto pasará 1 archivo a la vez, y usará 4 procesadores.


find . -type f -print0 | xargs -0 dos2unix

Buscará recursivamente todos los archivos dentro del directorio actual y llamará a estos archivos comando dos2unix


for FILE in /var/www/html/files/* do /usr/bin/dos2unix FILE done