[Linux] sed grep ou awk - remplace ment de chaine de caracteres
Marc Chantreux
mc@::1
Lun 21 Oct 16:24:06 CEST 2024
hello,
* tu mélanges les interpolations de variable et les colonnes.
* tu fais des trucs dangereux sans le savoir
mais là c'est long donc on en reparle de vive voix devant un verre?
en tout cas:
maintenant que je vois un script presque final, voilà ma proposition:
#!/bin/sh -ue
while getopts h0:1:t: o; do
case "$o"
in (h) <<-% cat
enable Terek4
$0 -1 Terek4 config.yml
disable Terek4
$0 -2 Terek4 config.yml
toggle Terek4
$0 -t Terek4 config.yml
(not implemented yet)
%
;; (0) set=false ; camera="$OPTARG"
;; (1) set=true ; camera="$OPTARG"
;; (t)
>&2 echo toggle not implemented yet
exit 1
# set=toggle; camera="$OPTARG"
esac
done
shift $(( $OPTIND - 1 ))
real=${1?path to the config file}
ghost=$(mktemp)
< "$real" > $ghost awk -F: -vcamera="^ *$camera *$" -vkey=1 -vvalue=2 -vset=$set '
$key ~ camera { search=1 }
search && $key ~ /^ *enabled *$/ {
$value = " "set
search=0
}
1
'
mv $ghost "$real"
--
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79
Plus d'informations sur la liste de diffusion linux