Comment fusionner des lignes avec awk ou sed ?

hamcc -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
voilà , j'ai un traitement à faire et je galère pour y arriver .

Je cherche à remplacer dans un fichier comme suit:
#cat fichier.txt
a1 b1 c1 \
d1
a2 a3 a4
a5
a6 a7 \
a8

et je veux arriver à faire comme suit:
#cat fichier.txt
a1 b1 c1 d1
a2 a3 a4
a5
a6 a7 a8

c'est à dire : si une ligne se termine par "\" alors il faut la fusionner avec la ligne suivante.

Merci pour votre aide

A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
$ awk 'sub("\\\\", "") {printf $0; next} 1' fichier
a1 b1 c1 d1
a2 a3 a4
a5
a6 a7 a8
aa bb cc dd ee zz
1
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

$ cat plop 
a1 b1 c1 \
d1
a2 a3 a4
a5
a6 a7 \
a8

$ sed '/\\$/{N;s/\\\n//}' plop
a1 b1 c1 d1
a2 a3 a4
a5
a6 a7 a8

0
hamcc
 
Merci zipe31,

C'est le top, mais comment peut on faire la même chose avec des lignes qui se suivent en "\" comme suit:
#cat plop
a1 b1 c1 \
d1
a2 a3 a4
a5
a6 a7 \
a8
aa bb cc \
dd ee \
zz


pour arriver à :
a1 b1 c1 d1
a2 a3 a4
a5
a6 a7 a8
aa bb cc dd ee zz

Merci beaucoup pour ta réactivité.
0
UnGars
 
Salut,

$ cat brol 
a1 b1 c1 \
d1
a2 a3 a4
a5
a6 a7 \
a8
aa bb cc \
dd ee \
zz

$ sed ':z;/\\$/{N;b z};s/\\\n//g;' brol
a1 b1 c1 d1
a2 a3 a4
a5
a6 a7 a8
aa bb cc dd ee zz
0