1 pièce(s) jointe(s)
[SHELL] Script pour remplacer / garder un "#" en début de ligne
Bonjour,
je travaille sur un script pour installer des datasource et je bloque sur une partie ! voici le problème :
j'ai un fichier avec les lignes ci dessous:
Citation:
#DS_DRIVER_NAME=oracle-11.2.0.4
#DS_DRIVER_NAME=oracle-12.1.0.2
DS_DRIVER_NAME=oracle-12.2.0.1
et j'aimerais en fonction du driver que je veux mettre, soit enlever le # dans le cas mon driver correspond à celui d'une des lignes et laisser et/ou mettre un # dans le cas contraire.
Par exemple si mon driver que je veux mettre est le 12.1.0.2, les lignes deviendraient ca :
Citation:
#DS_DRIVER_NAME=oracle-11.2.0.4
DS_DRIVER_NAME=oracle-12.1.0.2
#DS_DRIVER_NAME=oracle-12.2.0.1
j'ai donc penser à utiliser la commande sed de cette façon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#!/bin/bash
read -p "driver :" driver
while read line
do
#driver présents dans les lignes
drivdef=$(echo $driv_line| awk -F "=" '{print $2}' | awk -F "-" '{print $2}')
if [[ $driver == $drivdef ]] && [[ $^ == "#" ]]
then
sed 's/^#/^ /' $line
elif [[ $driver != $drivdef ]] && [[ $^ != "#" ]]
then
sed 's/^ /^#/' $line
fi
done <<< $(cat test.txt) |
mais cela me met cette erreur :
Pièce jointe 423015
je vous remercie par avance pour votre aide :)