#1 Le 13/10/2016, à 15:21
- sebastien29800
modifier du texte en fonction de ce qu'l y a écrit
bonjour à tous !!
soit le fichier texte toto.txt suivant :
# XScreenSaver Preferences File
# Written by xscreensaver-demo 5.34 for sebastien on Wed Oct 12 19:49:51 2016.
# http://www.jwz.org/xscreensaver/
timeout: 2:00:00
cycle: 12:00:00
lock: True
lockTimeout: 0:00:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
.
.
.
.
.
.
j'aurais aimer un script qui : si la valeur timeout: est égale à 2:00:00, il la remplace par 0:02:00 sinon , il met la valeur 2:00:00 (en sachant qu'il y a un <TAB> entre timeout: et la valeur et qu'il peut y avoir d'autres 2:00:00 dans le fichier)
je ne maitrise pas du tout sed/ merci à tous !!
merci
Hors ligne
#2 Le 13/10/2016, à 16:56
- pingouinux
Re : modifier du texte en fonction de ce qu'l y a écrit
Bonjour,
Essaye ceci
awk -v v1=2:00:00 -v v2=0:02:00 '/^timeout:/{if($2==v1)t=v2;else t=v1;$0=$1"\t"t}{print}' toto.txt
Édité : Ou plus simple
awk -v v1=2:00:00 -v v2=0:02:00 '/^timeout:/{t=$2==v1?v2:v1;$0=$1"\t"t}{print}' toto.txt
Dernière modification par pingouinux (Le 13/10/2016, à 17:01)
Hors ligne
#3 Le 13/10/2016, à 17:20
- sebastien29800
Re : modifier du texte en fonction de ce qu'l y a écrit
bonjour pingouinux,
tu es toujours le premier à répondre et tes solutions sont toujours parfaites du premier coup et je t'en remercie!!!!
cependant, je me rends compte que ce que je voulais faire avec ne marchera pas.
je comptais changer à la volée le fichier de config de xscreensaver pour allonger ou réduire le temps de déclenchement de celui-ci.
cependant, xscreensaver ne prend pas en compte ces changements
en gros, ce que j'aurais aimer faire, c'est un seul et même script qui lancé active ou désactive xscreensaver en fonction de son état
voilà ...
merci encore
Hors ligne
#4 Le 13/10/2016, à 17:47
- pingouinux
Re : modifier du texte en fonction de ce qu'l y a écrit
en gros, ce que j'aurais aimer faire, c'est un seul et même script qui lancé active ou désactive xscreensaver en fonction de son état
Je ne sais pas faire, désolé…
Hors ligne
#5 Le 13/10/2016, à 17:58
- sebastien29800
Re : modifier du texte en fonction de ce qu'l y a écrit
merci pour tout, pas de souci
Hors ligne
#6 Le 13/10/2016, à 18:42
- sebastien29800
Re : modifier du texte en fonction de ce qu'l y a écrit
ok, j'ai réussi à faire quelque chose, si ça peut servir !!
#! /bin/bash
pgrep xscreensaver
retval=$?
if [ "$retval" = 1 ]
then
xscreensaver -nosplash&
else
pkill xscreensaver
fi
Hors ligne
#7 Le 13/10/2016, à 20:04
- MicP
Re : modifier du texte en fonction de ce qu'l y a écrit
En plus court :
#! /bin/bash
pgrep xscreensaver && pkill xscreensaver || xscreensaver -nosplash&
Dernière modification par MicP (Le 13/10/2016, à 20:05)
Hors ligne
#8 Le 14/10/2016, à 15:57
- sebastien29800
Re : modifier du texte en fonction de ce qu'l y a écrit
en effet, super merci !!!!
Hors ligne