Obtenir une seule ligne avec 2 lignes

Résolu
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. le caractère fin de ligne + retour chariot c'est \n
    0
    1. Oui, je sais mais comment l'inclure dans ma commande initiale?

      Merci
      0
  2. 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
    1. Modérateur
      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. 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