Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script sed & tr

2 réponses
Avatar
kaiino_ladd_fr
Bonjour,


Comme =E0 chaque fois que j'essaie de les utiliser, je me bats encore
avec sed & tr.
Cette fois, j'ai un fichier source qui est compos=E9 de 1300+ lignes et
je souhaite concatener 2 lignes en une seule. Je m'explique :
mon fichier est de la forme
Name:W38551 (ID:38551) IP:10.231.138.172 MAC:000f24cb21b7 Parent
WDS:10.22.130.17
802.11g 00-0f-34-00-11-a0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps
Name:W38601 (ID:38601) IP:10.231.138.132 MAC:000c248d2cfc Parent
WDS:10.22.130.17
802.11g 00-0f-24-fd-52-f0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps
Name:W6969978 (ID:6969978) IP:10.230.235.60 MAC:0013f20a34d6 Parent
WDS:None
802.11g 00-14-1b-b4-a2-50 Ch: 6 13 mW CCK/ 13 mW OFDM 54.0 Mbps

Je souhaite avoir sur une m=EAme ligne, la ligne n qui commence par
"Name:" suivi de la ligne n+1 :
Name:W38551 (ID:38551) [...] WDS:10.22.130.17 802.11g [...]
Name:W38601 (ID:38601) [...] WDS:10.22.130.17 802.11g [...]
Name:W6969978 (ID:6969978) [...] WDS:None 802.11g [...]

Probl=E8me, si je fais un "$tr '\n' '@' " pour supprimer tous les sauts
de ligne, apr=E8s je ne peux plus faire fonctionner mon sed (il trouve
jamais d'expression =E0 remplacer m=EAme si elle existe dans le fichier).
Je n'arrive pas =E0 remplacer les sauts de lignes avec sed non plus..
Bref, je suis bloqu=E9, je suppose que =E7a doit pas =EAtre compliqu=E9
mais je trouve pas...

Quelqu'un pourrait il m'aider ???
Merci d'avance

2 réponses

Avatar
Sébastien Monbrun aka TiChou
Dans le message
<news:,
** tapota sur f.c.o.l.configuration :

Bonsoir,

je souhaite concatener 2 lignes en une seule. Je m'explique :
mon fichier est de la forme
Name:W38551 (ID:38551) IP:10.231.138.172 MAC:000f24cb21b7 Parent
WDS:10.22.130.17
802.11g 00-0f-34-00-11-a0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps
Name:W38601 (ID:38601) IP:10.231.138.132 MAC:000c248d2cfc Parent
WDS:10.22.130.17
802.11g 00-0f-24-fd-52-f0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps

Je souhaite avoir sur une même ligne, la ligne n qui commence par
"Name:" suivi de la ligne n+1 :
Name:W38551 (ID:38551) [...] WDS:10.22.130.17 802.11g [...]
Name:W38601 (ID:38601) [...] WDS:10.22.130.17 802.11g [...]
Name:W6969978 (ID:6969978) [...] WDS:None 802.11g [...]


$ sed ':a /^Name:/N;s/n/ /' fichier > fichier.new

ou avec l'option inplace d'un GNU sed récent :

$ sed -i~ '/^Name:/N;s/n/ /' fichier

--
Sébastien Monbrun aka TiChou

Avatar
Sébastien Monbrun aka TiChou
(Supersedes )

Dans le message
<news:,
** tapota sur f.c.o.l.configuration :

Bonsoir,

je souhaite concatener 2 lignes en une seule. Je m'explique :
mon fichier est de la forme
Name:W38551 (ID:38551) IP:10.231.138.172 MAC:000f24cb21b7 Parent
WDS:10.22.130.17
802.11g 00-0f-34-00-11-a0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps
Name:W38601 (ID:38601) IP:10.231.138.132 MAC:000c248d2cfc Parent
WDS:10.22.130.17
802.11g 00-0f-24-fd-52-f0 Ch: 11 10 mW CCK/ 10 mW OFDM 54.0 Mbps

Je souhaite avoir sur une même ligne, la ligne n qui commence par
"Name:" suivi de la ligne n+1 :
Name:W38551 (ID:38551) [...] WDS:10.22.130.17 802.11g [...]
Name:W38601 (ID:38601) [...] WDS:10.22.130.17 802.11g [...]
Name:W6969978 (ID:6969978) [...] WDS:None 802.11g [...]


$ sed '/^Name:/N;s/n/ /' fichier > fichier.new

ou avec l'option inplace d'un GNU sed récent :

$ sed -i~ '/^Name:/N;s/n/ /' fichier

--
Sébastien Monbrun aka TiChou