Demande d'aide pour "sed"

Bonjour.

À la fin ce ce post, j’utilise une ligne de commande dans laquelle “sed” est appelé deux fois.
Est-il possible d’obtenir le même résultat en n’appelant “sed” qu’une seule fois ?

Je vous remercie d’avance pour tous vos conseils,
(sous la forme que vous voudrez : liens vers docs, ligne de commande etc…

=========================
Je suis en train de lire cette documentation (et les 2 pages qui suivent), mais je n’ai pas encore tout lu et surtout tout compris.
Selon vous, est-ce une “bonne documentation” ?

=========================
Un grand Merci à Watael qui m’avait déjà bien inspiré avec ce post.

====================================================

Ci-dessous, une adaptation de la ligne de commande que je proposais dans le post , en utilisant le texte (plus bas) dans un fichier que j’avais nommé : “retourSynclient.txt”.

ET ci-dessous, un exemple du texte retourné par la commande “synclient -l”:

Parameter settings: AccelFactor = 0.131492 AreaBottomEdge = 0 AreaLeftEdge = 0 AreaRightEdge = 0 AreaTopEdge = 0 BottomEdge = 545 CircScrollDelta = 0.1 CircScrollTrigger = 0 CircularPad = 0 CircularScrolling = 0 ClickFinger1 = 1 ClickFinger2 = 1 ClickFinger3 = 1 ClickPad = 0 ClickTime = 100 CoastingFriction = 50 CoastingSpeed = 20 CornerCoasting = 0 EdgeMotionMaxSpeed = 121 EdgeMotionMaxZ = 160 EdgeMotionMinSpeed = 1 EdgeMotionMinZ = 30 EdgeMotionUseAlways = 0 EmulateMidButtonTime = 75 EmulateTwoFingerMinW = 7 EmulateTwoFingerMinZ = 282 FastTaps = 0 FingerHigh = 1 FingerLow = 1 FingerPress = 256 GrabEventDevice = 1 HorizEdgeScroll = 1 HorizHysteresis = 7 HorizScrollDelta = 30 HorizTwoFingerScroll = 0 LBCornerButton = 0 LeftEdge = 56 LockedDrags = 0 LockedDragTimeout = 5000 LTCornerButton = 0 MaxDoubleTapTime = 180 MaxSpeed = 1.75 MaxTapMove = 66 MaxTapTime = 180 MinSpeed = 1 PalmDetect = 0 PalmMinWidth = 10 PalmMinZ = 200 PressureMotionMaxFactor = 1 PressureMotionMaxZ = 160 PressureMotionMinFactor = 1 PressureMotionMinZ = 30 RBCornerButton = 0 RightEdge = 1352 RTCornerButton = 0 SingleTapTimeout = 180 TapAndDragGesture = 1 TapButton1 = 1 TapButton2 = 2 TapButton3 = 3 TopEdge = 31 TouchpadOff = 0 TrackstickSpeed = 40 VertEdgeScroll = 1 VertHysteresis = 7 VertScrollDelta = 10 VertTwoFingerScroll = 1

Oui. Tu peux appeler sed avec plusieurs blocs d’instructions à la suite (option -e)

ex: sed -e ‘bloc_instructions_1’ -e ‘bloc_instructions_2’ …

(le terme exact est un script plutôt qu’un bloc d’instructions, cf. man sed)

Merci pour ta proposition

J’ai tenté comme ça, mais ça na pas donné ce que j’attendais.
J’ai dû mal m’y prendre…mais où ?

================================
Voici ce que ça donne avec:

(je transmet que les premiers caractères seulement)

================================
Ce que j’attendais, avec :

(je transmet que les premiers caractères seulement)

désolé, je me suis mal exprimé. Il faut utiliser plusieurs fois l’option -e (j’ai rectifié mon message précédent)

J’ai essayé en décomposant le script sed (avec “-e”) en plusieurs étapes, mais j’ai obtenu le même résultat décevant:
“retourSynclient.txt” est le fichier texte correspondant au retour de la commande “synclient -l” exécutée sur une machine qui a un touchpad (voir le premier post de ce fil).

cat retourSynclient.txt | sed -e ‘s/Parameter settings:/synclient/;s/ //g’ -e ‘:etiquette;N;s/\n/ /;betiquette;’

michel@deb9550:~/Bureau/touchpad pavé tactite synaptics/srciptSynaptic$ cat retourSynclient.txt | sed -e 's/Parameter settings:/synclient/;s/ //g' -e ':etiquette;N;s/\n/ /;betiquette;' synclient AccelFactor = 0.131492 AreaBottomEdge = 0 AreaLeftEdge = 0 AreaRightEdge = 0 AreaTopEdge = 0 BottomEdge = 545 CircScrollDelta = 0.1 CircScrollTrigger = 0 CircularPad = 0 CircularScrolling = 0 ClickFinger1 = 1 ClickFinger2 = 1 ClickFinger3 = 1 ClickPad = 0 ClickTime = 100 CoastingFriction = 50 CoastingSpeed = 20 CornerCoasting = 0 EdgeMotionMaxSpeed = 121 EdgeMotionMaxZ = 160 EdgeMotionMinSpeed = 1 EdgeMotionMinZ = 30 EdgeMotionUseAlways = 0 EmulateMidButtonTime = 75 EmulateTwoFingerMinW = 7 EmulateTwoFingerMinZ = 282 FastTaps = 0 FingerHigh = 1 FingerLow = 1 FingerPress = 256 GrabEventDevice = 1 HorizEdgeScroll = 1 HorizHysteresis = 7 HorizScrollDelta = 30 HorizTwoFingerScroll = 0 LBCornerButton = 0 LeftEdge = 56 LockedDrags = 0 LockedDragTimeout = 5000 LTCornerButton = 0 MaxDoubleTapTime = 180 MaxSpeed = 1.75 MaxTapMove = 66 MaxTapTime = 180 MinSpeed = 1 PalmDetect = 0 PalmMinWidth = 10 PalmMinZ = 200 PressureMotionMaxFactor = 1 PressureMotionMaxZ = 160 PressureMotionMinFactor = 1 PressureMotionMinZ = 30 RBCornerButton = 0 RightEdge = 1352 RTCornerButton = 0 SingleTapTimeout = 180 TapAndDragGesture = 1 TapButton1 = 1 TapButton2 = 2 TapButton3 = 3 TopEdge = 31 TouchpadOff = 0 TrackstickSpeed = 40 VertEdgeScroll = 1 VertHysteresis = 7 VertScrollDelta = 10 VertTwoFingerScroll = 1 michel@deb9550:~/Bureau/touchpad pavé tactite synaptics/srciptSynaptic$

La seule méthode qui a fonctionné a été celle ci:

cat retourSynclient.txt | sed -e ‘s/Parameter settings:/synclient/;s/ //g’ | sed -e ‘:etiquette;N;s/\n/ /;betiquette;’

michel@deb9550:~/Bureau/touchpad pavé tactite synaptics/srciptSynaptic$ cat retourSynclient.txt | sed -e 's/Parameter settings:/synclient/;s/ //g' | sed -e ':etiquette;N;s/\n/ /;betiquette;' synclient AccelFactor=0.131492 AreaBottomEdge=0 AreaLeftEdge=0 AreaRightEdge=0 AreaTopEdge=0 BottomEdge=545 CircScrollDelta=0.1 CircScrollTrigger=0 CircularPad=0 CircularScrolling=0 ClickFinger1=1 ClickFinger2=1 ClickFinger3=1 ClickPad=0 ClickTime=100 CoastingFriction=50 CoastingSpeed=20 CornerCoasting=0 EdgeMotionMaxSpeed=121 EdgeMotionMaxZ=160 EdgeMotionMinSpeed=1 EdgeMotionMinZ=30 EdgeMotionUseAlways=0 EmulateMidButtonTime=75 EmulateTwoFingerMinW=7 EmulateTwoFingerMinZ=282 FastTaps=0 FingerHigh=1 FingerLow=1 FingerPress=256 GrabEventDevice=1 HorizEdgeScroll=1 HorizHysteresis=7 HorizScrollDelta=30 HorizTwoFingerScroll=0 LBCornerButton=0 LeftEdge=56 LockedDrags=0 LockedDragTimeout=5000 LTCornerButton=0 MaxDoubleTapTime=180 MaxSpeed=1.75 MaxTapMove=66 MaxTapTime=180 MinSpeed=1 PalmDetect=0 PalmMinWidth=10 PalmMinZ=200 PressureMotionMaxFactor=1 PressureMotionMaxZ=160 PressureMotionMinFactor=1 PressureMotionMinZ=30 RBCornerButton=0 RightEdge=1352 RTCornerButton=0 SingleTapTimeout=180 TapAndDragGesture=1 TapButton1=1 TapButton2=2 TapButton3=3 TopEdge=31 TouchpadOff=0 TrackstickSpeed=40 VertEdgeScroll=1 VertHysteresis=7 VertScrollDelta=10 VertTwoFingerScroll=1 michel@deb9550:~/Bureau/touchpad pavé tactite synaptics/srciptSynaptic$

Je suis aussi à la recherche de documentation concernant “sed”.
Je viens de télécharger ce document (O’Reilly “sed & awk 2nd edition” - 2.1MB - 577 pages - pdf), qui semble beaucoup plus complet que le lien (premier post de ce fil).
Je vais en avoir pour un bon moment, mais l’investissement en vaut la peine.

Si vous avez d’autres propositions ou liens, je suis preneur.
Mon but est plus de comprendre que d’appliquer une solution “copié/collé”

Merci