J'essaie d'analyser des fichiers avec awk pour changer leurs noms. Tout se passait bien jusqu'à ce que je commence à le faire avec des fichiers dont le nom contient un espace. Les noms de fichiers sont quelque chose comme 11237_712312955_2012-01-04 18_31_03.wav
et je veux remplacer le wav du nom du fichier. Voici un exemple de mon code :
ls | awk -F\. '{print $1}'
Après avoir exécuté ceci dans la console, tout est correct et j'obtiens le nom du fichier sans extension.
Exemple : fichier 11237_712312955_2012-01-04 18_31_03.wav
après ls | awk -F\. '{print $1}'
dans la console que je reçois :
11237_712312955_2012-01-04 18_31_03
et c'est correct.
Mais quand je mets ça dans mon script :
#!/bin/bash
for i in $(ls);
do
FILENAME=echo $i | awk -F\. '{print $1}'; #problematic line
echo $FILENAME
done
script scinde le fichier en deux à l'endroit où se trouvait l'espace.
La sortie de script est :
11237_712312955_2012-01-04
18_31_03
Comment faire pour que mon script fonctionne correctement ?
0 votes
Renommez vos fichiers pour supprimer les espaces. Sérieusement. Les espaces n'ont pas plus leur place dans les noms de fichiers que les tatouages dans le bas du dos.
0 votes
Oui, je le sais. J'ai enlevé les espaces après avoir conevrté et renommé les fichiers.