Message d err: function sed cannot be parsed

Fermé
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011 - 10 juil. 2011 à 18:15
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011 - 10 juil. 2011 à 19:54
Bonjour,

j'ai mis une fonction sed dans un shell
ls -1 |sed 's/^r//g'

quand je tape ces instructions directement sur le repertoire ca fonctionne.
quand je le mets dans mon shell j'ai un message d'erreur :function set cannot be parsed
Je suis sur AIX

quelqu 'un aurait- il une petite idee ? merci de votre aide

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
Modifié par lami20j le 10/07/2011 à 19:25
En ce cas c'est mieux d'utiliser mv

Un exemple

lami20j@debian-acer:~$ ls r*.fichier 
r10.fichier  r.1.fichier  r22.fichier  r.fichier  rplop.fichier 
lami20j@debian-acer:~$ for f in r*.fichier;do echo mv -v $f ${f#r};done 
mv -v r10.fichier 10.fichier 
mv -v r.1.fichier .1.fichier 
mv -v r22.fichier 22.fichier 
mv -v r.fichier .fichier 
mv -v rplop.fichier plop.fichier 
lami20j@debian-acer:~$ for f in r*.fichier;do mv -v $f ${f#r};done 
'r10.fichier' -> '10.fichier' 
'r.1.fichier' -> '.1.fichier' 
'r22.fichier' -> '22.fichier' 
'r.fichier' -> '.fichier' 
'rplop.fichier' -> 'plop.fichier' 
lami20j@debian-acer:~$ ls *.fichier 
10.fichier  22.fichier  plop.fichier 
lami20j@debian-acer:~$ 

Le fichier .1.fichier est un fichier caché, donc peut être tu as aussi besoin de le supprimer

lami20j
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 juil. 2011 à 18:20
Salut,

Montre nous comment tu as mis cette ligne dans ton script.
0
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011
10 juil. 2011 à 18:48
Bonjour
apres mes declarations de variables
je mis
ls -1 | sed 's/^r //g' ${rep}/r*.fichier

${rep} atant ma variable qui contient le chemin de mon repertoire
r.*fichier : mes fichiers qui sont dans le repertoire;

merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 juil. 2011 à 18:50
Si je comprends bien tu veux supprimer le caractère CarriageReturn à la fin de chaque ligne des fichiers qui commencent avec r et ont l'extension fichier.
C'est bien ça que tu veux?
0
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011
10 juil. 2011 à 19:13
Non je veux supprimer le r qui est au debut de chaque noms des fichiers
dans mon repertoire j ai
r22.fichier
r.1.fichier
r10.fichier

j'enleve juste le r devant chaque nom de fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011
10 juil. 2011 à 19:37
oui mais l'option -v n'existe pas sur AIX, ce que je comprends la commande marche bien elle m'enleve bien les r devant.*Alors dans le shell ca fonctionne pas
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 juil. 2011 à 19:40
Le -v c'est juste pour voir à l'écran. Tu peux l'enlever.
Toutefois je te conseille de faire le test sur des fichiers bidon.
0
rip06 Messages postés 5 Date d'inscription dimanche 10 juillet 2011 Statut Membre Dernière intervention 10 juillet 2011
10 juil. 2011 à 19:54
Ok merci ca marche sur le repertoire, maintenant je vais integrer la boucle dans mon shell
en tout cas un grand merci , je commencais sà tresser un peu avec ce message d'erreur
0