Obtenir une seule ligne avec 2 lignes

Résolu/Fermé
tof_25 - 24 avril 2008 à 16:12
 tof_25 - 24 avril 2008 à 16:43
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+

3 réponses

snouts Messages postés 87 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 23 juin 2008 10
24 avril 2008 à 16:14
le caractère fin de ligne + retour chariot c'est \n
0
Oui, je sais mais comment l'inclure dans ma commande initiale?

Merci
0
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
24 avril 2008 à 16:27
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
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