Le but de cette commande est de rassembler le contenu de tous les fichiers sous la répertoire en cours dont les noms se terminent comme indiqué (css ... rb) dans un fichier nommé onebigfile (avec des délimiteurs) IIUC.
Pour déboguer ce type de série de commandes canalisées, vous pouvez exécuter les commandes individuelles ou des groupes de commandes individuels pour essayer de voir ce qui se passe. Par exemple, essayez:
find .
find . | grep '.*\(css\|js\|rjs\|rhtml\|rb\)$'
find . | grep '.*\(css\|js\|rjs\|rhtml\|rb\)$' | sort
ensuite obtenir une ligne de la sortie (par exemple ./dir/file.css), et essayer:
echo './dir/file.css' | while read in; do echo ${in}; done
echo './dir/file.css' | while read in; do cat ${in}; done
echo './dir/file.css' | while read in; do cat ${in} >> onebigfile; done
Vous devriez bo alors en mesure de comprendre ce qui se passe .
Le problème peut être dû aux noms de fichiers et de répertoires contenant des espaces. La solution dans ce cas est d'utiliser la commande find -print0
.
Qu'est-ce qui ne fonctionne pas exactement? ça marche bien pour moi avec bash. – ghostdog74