[awk] suppression d'un élément pour comparer
dobson
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
bonjour,
comment faire pour supprimer le dernier élément d'un chemin avec awk,
et comparer le nouveau chemin avec une liste de chemins?
Par exemple, mon chemin:
1. je prends le chemin /usr/bin/cp
2. je supprime cp de la chaîne de caractères "/usr/bin/cp"
3. je compare la nouvelle chaîne "/usr/bin" avec une chaîne.
Merci
comment faire pour supprimer le dernier élément d'un chemin avec awk,
et comparer le nouveau chemin avec une liste de chemins?
Par exemple, mon chemin:
1. je prends le chemin /usr/bin/cp
2. je supprime cp de la chaîne de caractères "/usr/bin/cp"
3. je compare la nouvelle chaîne "/usr/bin" avec une chaîne.
Merci
3 réponses
-
Salut,
Tu pourrais faire comme suit (il y a surement d'autres façons de faire) :echo "/usr/bin/cp" | awk -F "/" '{ if($2 ~ /usr/ && $3 ~ /bin/) { print "OK" } }';-))
-
voilà, j'ai amélioré mon script:
#! /bin/ksh PATH_SCP=`whence scp | sed "s/scp//"` echo $PATH_SCP LS_PATH=`echo $PATH | sed "s/:/ /g"` #echo $LS_PATH for path in $LS_PATH do echo "$path" if ( $path == $PATH_SCP ) then echo "scp in path" fi done
seulement un problème demeure:
lorsque je compare mes 2 strings $path et $PATH_SCP,
j'obtiens:
/usr/local/sbin
./check_bins.ksh[9]: /usr/local/sbin: cannot execute
/usr/local/bin
./check_bins.ksh[9]: /usr/local/bin: cannot execute
/usr/sbin
./check_bins.ksh[9]: /usr/sbin: cannot execute
/usr/bin
..........
qui peut me dire pourquoi cette erreur apparaît?
Merci -
Salut,
$ chemin=$(dirname $(which scp)) $ echo $chemin /usr/bin $ pass=$(echo $PATH | sed "s/:/ /g") $ echo $pass /bin /usr/bin /usr/local/bin /usr/X11R6/bin/ /usr/games /home/jp/bin $ for nom in $(echo $pass); do if [ "$nom" = "$chemin" ]; then echo "scp in path"; fi; done scp in path $
;-))