Cygwin
rico34
Messages postés
9
Statut
Membre
-
max -
max -
Bonsoir,
J'essaie de tester ce code sur l'émulateur cygwin, code qui fonctionne correctement sur unix.
shopt -s extglob
for file in $(find . -maxdepth 1 -type f) ; do
if https://www.commentcamarche.net/s/echo-file ; then
echo "*** Nom fichier $file invalide"
continue
fi
echo "* Traitement $file"
awk -v NbChampValide=10 '
BEGIN {
FS=";"
OFS=";"
}
{
if (NF != NbChampValide) {
print "*** sur Record "NR" : "NF" champs presents (valide "NbChampValide") !!!" | "cat 1>&2"
}
printf("%06d;%s\n",NR,$0)
} ' $file
done
Sur cygwin, j'ai le message suivant :
J'ai cette réponse.
sh essai.sh
invalid shell option nametglob
essai.sh: line 2: syntax error near unexpected token `$'do\r''
essai.sh: line 2: `for file in $(find . -maxdepth 1 -type f) ; do
Merci pour vos lumières.
J'essaie de tester ce code sur l'émulateur cygwin, code qui fonctionne correctement sur unix.
shopt -s extglob
for file in $(find . -maxdepth 1 -type f) ; do
if https://www.commentcamarche.net/s/echo-file ; then
echo "*** Nom fichier $file invalide"
continue
fi
echo "* Traitement $file"
awk -v NbChampValide=10 '
BEGIN {
FS=";"
OFS=";"
}
{
if (NF != NbChampValide) {
print "*** sur Record "NR" : "NF" champs presents (valide "NbChampValide") !!!" | "cat 1>&2"
}
printf("%06d;%s\n",NR,$0)
} ' $file
done
Sur cygwin, j'ai le message suivant :
J'ai cette réponse.
sh essai.sh
invalid shell option nametglob
essai.sh: line 2: syntax error near unexpected token `$'do\r''
essai.sh: line 2: `for file in $(find . -maxdepth 1 -type f) ; do
Merci pour vos lumières.
A voir également:
- Cygwin
- Cygwin - Télécharger - Édition & Programmation
1 réponse
Salut,
Essaie déjà de donner le chemin absolu du shell (/bin/sh voir à ce sujet la FAQ Cygwin) et peut être dans un premier temps de commenter la ligne appelant la commande "shopt" (# shopt -s).
Concernant l'erreur de la ligne 2, essaie de passer le "do" à la ligne en enlevant aussi le "point virgule" final :
;-))
Essaie déjà de donner le chemin absolu du shell (/bin/sh voir à ce sujet la FAQ Cygwin) et peut être dans un premier temps de commenter la ligne appelant la commande "shopt" (# shopt -s).
Concernant l'erreur de la ligne 2, essaie de passer le "do" à la ligne en enlevant aussi le "point virgule" final :
for file in $(find . -maxdepth 1 -type f) do if...Tu peux remettre la condition du "if" sans les crochets (qui sont interprétés par le code de CCM sinon), s'il te plait merci.
;-))
J'ai eu le meme probleme et j'ai recopier le script a la main (sans faire copier + coller ) exactement dans un autre fichier et il a fonctionné.