Je pensais juste avoir trouvé ma solution car la commande fonctionne dans mon répertoire de test.commande grep travaillant dans testdir mais pas dans le répertoire "réel"
grep -H -e 'author="[^"].*' *.xml | cut -d: -f1 | xargs -I '{}' mv {} mydir/.
Mais en utilisant la commande dans le non-test direcory la commande ne fonctionne pas: Tel est le message d'erreur:
grep: unknown option -- O Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information.
Pas même cela a fonctionné:
$ grep -H author *.xml
ou ceci:
$ grep -H 'author' *.xml
(même message d'erreur)
Je soupçonne qu'il a une certaine relation avec les noms de fichiers ou la quantité de fichiers. J'ai près de 3000 fichiers dans le répertoire non-test et seulement 20 dans mon répertoire de test. Dans les deux répertoires, presque tous les noms de fichiers contiennent des espaces et "-".
Quelques infos:
- J'utilise Cygwin.
- Je ne suis pas autorisé à changer les noms de fichiers
Merci beaucoup pour les bons conseils! Une partie du problème est au moins résolue maintenant. Dieu nouvelles: grep ne se plaint pas et il trouve un fichier (avec ce nom horrible): !!dispositif Importation - être terminé later.xml Mauvaises nouvelles: grep ne répertorie pas tous les fichiers contenant la chaîne recherchée - par exemple ces fichiers commençant par tableau de bord simple, tableau de bord duouble et underscore triple: -OFF.xml --operation. xml ___Checklist - menu.xml Devrais-je faire quelque chose avec la variable IFS? /T – Tony
@Tony: Je pense que 'grep' liste ces fichiers, le problème est' mv'. Vous devez aussi faire le tour '--' avec' mv'. Maintenant, je vais modifier la réponse pour résoudre le problème. Si cela fonctionne, veuillez accepter ma réponse! :) –
Oui ça a marché! Bon!/T – Tony