2010-02-09 11 views

Respuesta

21

real solución probada:

$ find . -type f \! -path \*/\.svn/\* -exec dos2unix {} \; 
+0

gracias, funcionó bien para mí. –

-1

En bash

for fic in **/*; dos2unix $fic 

O aún mejor en zsh

for fic in **/*(.); dos2unix $fic 
+1

¿Cómo esta omitir '' Svn/directorios? –

+0

si dotglob está desactivado, se saltará los archivos ocultos. Pero también se omitirán otros archivos ocultos, lo cual no es lo que OP quiere. – ghostdog74

+0

¡Oooops, lo siento! para root en {*,. *} (N); do [[$ root = .svn]] && continuar; para fic en $ raíz/**/* (.); do dos2unix $ fic; hecho ; funciona pero la versión de búsqueda es mejor ahora ... – yogsototh

1

sólo ofrecer una propina adicional: canalizando el resultado a través de xargs en lugar de utilizar la opción -exec del hallazgo aumentará el rendimiento al pasar por una gran estructura de directorios si el programa de filtrado acepta múltiples argumentos, ya que esto reducirá el número de fork(), así que:

find <opta> | xargs dos2unix

Una advertencia: piping through xargs fallará horriblemente si algún nombre de archivo incluye espacios en blanco.

+2

' encontrar ... -print0 | xargs -0 ... 'maneja nombres de archivo con espacios. –

-1
find . -path ./.svn -prune -o -print0 | xargs -0 -i echo dos2unix "{}" "{}" 

si tiene fiesta 4,0

shopt -s globstar 
shopt -s dotglob 
for file in /path/** 
do 
    case "$file" in 
    */.svn*)continue;; 
    esac 
    echo dos2unix $file $file 
done 
+0

Este tampoco parece funcionar. –

+0

Cambiando -path ./.svn a -path '* /. Svn' debería arreglarlo. – Juris

+0

'-i' está en desuso, use' -I {} 'en su lugar. Además, ¿por qué dos '" {} "'? –

2

Aquí hay un guión general sobre el que puede cambiar la última línea según sea necesario. Me he tomado la técnica de mi guión findrepo:

repodirs=".git .svn CVS .hg .bzr _darcs" 
for dir in $repodirs; do 
    repo_ign="$repo_ign${repo_ign+" -o "}-name $dir" 
done 

find \(-type d -a \($repo_ign \) \) -prune -o \ 
    \(-type f -print0 \) | 
xargs -r0 \ 
dos2unix 
Cuestiones relacionadas