Message d err: function sed cannot be parsed

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

  1. Modérateur
    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. Modérateur
      Salut,

      Montre nous comment tu as mis cette ligne dans ton script.
      1. 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
        1. Modérateur
          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?
      2. 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
        1. 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
          1. Modérateur
            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.
        2. 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