Obtenir une seule ligne avec 2 lignes

Résolu
tof_25 -  
 tof_25 -
Bonjour,

Sous UNIX, j'ai le fichier fic avec le contenu suivant :

commande1 commande2 commande3 \
commande4 commande5

Comment faire pour supprimer le caractère '\' ainsi que le retour chariot afin d'obtenir qu'une seule ligne? :
commande1 commande2 commande3 commande4 commande5

Je souhaiterai avec une commande du style :

cat fic | sed s/'\\'//g

Mais cette dernière est incomplète pour arriver au résultat désiré.

Merci pour votre aide.

A+
Configuration: UNIX AIX 5.3

3 réponses

  1. snouts Messages postés 87 Statut Membre 10
     
    le caractère fin de ligne + retour chariot c'est \n
    0
    1. tof_25
       
      Oui, je sais mais comment l'inclure dans ma commande initiale?

      Merci
      0
  2. tof_25
     
    C'est bon, j'ai trouvé une solution :

    cat fic | awk '{ if (sub(/\\$/,"")) printf "%s", $0; else printf "%s\n", $0 }'

    Résultat :
    commande1 commande2 commande3 commande4 commande5

    Merci pour votre aide quand même

    A+
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    lami20j@debian:~/trash$ cat bbb
    commande1 commande2 commande3 \
    commande4 commande5
    lami20j@debian:~/trash$ sed ':s;N;s/\\\n//;bs' bbb
    commande1 commande2 commande3 commande4 commande5

    Source Substituer les fins de lignes par un espace
    Merci jipicy ;-)
    0
    1. tof_25
       
      Salut

      En fait, j'ai trouvé une solution mais ton exemple ne marche pas chez moi :

      >sed ':s;N;s/\\\n/ /;bs' fic3
      sed: 0602-417 The label :s;N;s/\\\n/ /;bs is greater than eight characters.
      0