Coucou tout le monde
J'ai un petit souci avec la commande gnu "sed"...
Mon problème est comment faire en sorte, dans le cas d'un chainage de commandes ( ...;...;...; ), que chaque commande ou groupe de commandes travaille uniquement sur le dernier filtrage, en somme l'output tel qu'il serait affiché (ou le pattern space courant ?), et non sur le fichier d'entrée ou le premier filtrage... Mes essais avec les "buffers" de sed se sont avérés infructueux...
Je donne un petit exemple concret :
soit un fichier "txt.txt" dont voici le contenu :
que je dois transformer en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 l1 x1 l2 x2 l3 xt l4 xp l5 xs l6 x+ l7 x7 l8 x8 l9 x9
ma ligne de commande sed qui fonctionne, mais dont je ne dois pas avoir plus d'une instance à la fois est :Envoyé par output
je souhaite qu'elle ait une forme proche de cette ligne qui évidemment ne produit pas le résultat escompté même quand j'y ai ajouté une étiquette et des accolades, et faute d'une maitrise totale sur la question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -n "/l3/,/l7/I!d;/x./!d;p" txt.txt |sed -n "N;s/\n//;p"
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -n "/l3/,/l7/I!d;/x./!d;N;s/\n//;p" txt.txt![]()
Partager