J'ai un fichier dans lequel la valeur commence par ABC ou ABD.
Après avoir récupéré la valeur du fichier d'entrée, comment vérifier qu'elle commence par ABC ou ABD?
par exemple:
value=$(cat file | awk 'NF{print;exit}' | awk '{print $1}')
et maintenant je veux vérifier que la valeur de $ commence par ABC ou ABD. Comment?
case
Pour vérifier si une variable Shell commence par ABC ou ABD, une méthode traditionnelle (et très portable) consiste à utiliser une instruction case:
case "$value" in
AB[CD]*) echo yes;;
*) echo no;;
esac
Parce que cela ne nécessite aucun processus externe, il devrait être rapide.
[
Alternativement, on peut utiliser une commande test:
if [ "${value#AB[CD]}" != "$value" ]
then
echo yes
else
echo no
fi
C'est aussi assez portable.
[[
Enfin, on peut utiliser la commande plus moderne et moins portable test:
if [[ $value == AB[CD]* ]]
then
echo yes
else
echo no
fi
Pour lire la première ligne non vide d'un fichier et vérifier si son premier champ commence par ABC ou ABD:
awk 'NF{if ($1~/^AB[CD]/) print "yes"; else print "no";exit}' file
Essaye ça:
echo $value | grep -c "^AB[CD]"
Cela retournera 1 si le motif est présent au début.