Message d err: function sed cannot be parsed

rip06 Messages postés 5 Statut Membre -  
rip06 Messages postés 5 Statut Membre -
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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Montre nous comment tu as mis cette ligne dans ton script.
    0
  3. rip06 Messages postés 5 Statut Membre
     
    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
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  4. rip06 Messages postés 5 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rip06 Messages postés 5 Statut Membre
     
    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
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  7. rip06 Messages postés 5 Statut Membre
     
    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