Je dois concaténer un certain nombre de fichiers dans une structure de répertoires contenant des espaces dans les noms de dossiers qui ressemblent à ceci: ./CH 0000100014 / A10 / 11XT / 11xt # 001.csv
find . -name "*.csv" -type f -print0 | xargs -0 cat > allmycsv.txt
fait le travail, mais maintenant je dois inclure les informations contenues dans le chemin, c’est- CH 0000100014/A10/11XT
à- dire comme en-tête de chaque fichier d’entrée dans cat.
find . -name "*.csv" -type f -print0 | xargs -0 -I % sh -c 'echo %; cat %' >allmycsv.txt
ferait le travail, si je n'avais pas d'espaces dans le chemin, mais dans mon cas, chat ne s'entend pas avec l'espace dans le nom du chemin. y a t-il une sortie?
À la vôtre, E
PS je travaille sur bash sur OSX
-d ''
place de-d $'\0'
, ce qui fonctionne soit parcebash
que la chaîne vide est un cas spécial, soit parce que le "premier" caractère de la chaîne null est le terminateur à octet nul (je ne sais pas lequel).Essayez d’ajouter des guillemets autour des caractères%:
la source