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:

#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 :

#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 : 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
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 :

Nom : erreurtest.PNG
Affichages : 113
Taille : 6,1 Ko

je vous remercie par avance pour votre aide