¿Cómo aplicar dos2unix de forma recursiva a todo el contenido de una carpeta?


11

¿Hay alguna forma de aplicar el dos2unixcomando para que se ejecute en todos los archivos de una carpeta y sus subcarpetas? man dos2unix¿No muestra ninguna -ropción o similar que lo haga sencillo?

Respuestas:


18

find /path -type f -print0 | xargs -0 dos2unix --


2
No se preocupe, dos2unixomite los binarios por defecto.
Walf

3

Saltar binarios y archivos ocultos fueron importantes para mí:

Este me funcionó bien:

find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k

Lo que se traduce en: buscar todos los archivos no ocultos recursivamente en el directorio actual, luego usar grep, enumerar todos los archivos no binarios (-I) no vacíos, luego canalizarlos en xargs (delimitados por nuevas líneas) un archivo a la vez para dos2unix y mantenga la marca de tiempo original.

Ver también:

https://github.com/mdolidon/endlines


2

Puede usar find para buscar todos los archivos en una estructura de directorio que desea ejecutar a través del comando dos2unix

find /path/to/the/files -type f -exec dos2unix {} \;

Eche un vistazo a las páginas de manual para encontrar, hay muchas opciones que puede usar para especificar lo que se evalúa


Esto no funcionó.
Alex Kinman el

2
Tenga mucho cuidado al ejecutar esto si hay un directorio .git en algún lugar del árbol de archivos ... corrompió mi repositorio local de git.
Aaron_H

1

Usa un comodín. Así: (si estás en la carpeta)

dos2unix *

o si estás fuera de la carpeta haz:

dos2unix /path/to/folder/*

1

Utilizando bash:

shopt -s globstar
dos2unix **

La globstaropción de shell en bashpermite el uso del **glob. Esto funciona igual *pero coincide /en los nombres de ruta (por lo tanto, coincide con los nombres en subdirectorios también). Esto funcionaría en un directorio que contiene un número moderado de archivos en sus subdirectorios (no muchos miles).

En el zshy yashconchas (con set -o extended-globadentro yash), harías

dos2unix **/*
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.