Bonjour,
Lors du lancement d'un script shell sur une machine linux, il m'affiche un message disant que la commande sed en BSD n'accepte pas l'option -i (sed -i) et n'accepte que 8 caracteres?!!
comment faire pour que ça marche en BSD?
Bonjour,
Lors du lancement d'un script shell sur une machine linux, il m'affiche un message disant que la commande sed en BSD n'accepte pas l'option -i (sed -i) et n'accepte que 8 caracteres?!!
comment faire pour que ça marche en BSD?
Hmm, tu te contredis.
Peux-tu préciser quel système d'exploitation tu utilises (quelle version de BSD à priori), monter la commande précise que tu exécutes et le message d'erreur retourné ?
-i n'est pas universel du tout pour sed c'est uniquement le sed gnu je crois.
quand à la limitation de 8 caractères c'est pas du tout le cas, sauf cas spécifique.
voila le message qu'il me sort::
sed: illegal option -- i
Usage: sed [-n] [-e script] [-f source_file] [file...]
sed: illegal option -- i
Usage: sed [-n] [-e script] [-f source_file] [file...]
et quand j'applique ma commande directement sans exécuter le script il me dit:
sed: The label /^XXXX/{/[^\t]*a/b;s/[^\t]*\t[^\t]*/&c/} is greater than eight characters.
pour la machine c'est HP-UX B11.11
Voilà ce que signifie ton script:
Pour toute les lignes qui commencent par XXXX, faire l'ensemble des commandes en accolades.
{
Pour toute les lignes qui contiennent a, sauter !
Pour tous les cas, échanger ceci par cela, 1 fois.
}
Il manque deux choses:
- La définition de l'étiquette ( :etiquette )
- L'étiquette à laquelle il faut sauter (b etiquette)
Cela ne m'étonnerait pas que ce soit le label dont il parle.
Bonjour,
Je penche plus sur cette partie:
qui ne doit pas être supporter sur ce sed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part b;s/[^\t]*\t[^\t]*/&c/
Il me semble que le séparateur de commande ';' n'existe pas de facto sur toutes les version de sed.
En principe, c'est une commande par ligne...
Partager