J'ai une string séparée avec des virgules où je veux find mon input dans cette ligne:
echo US | grep "US,CA,CH,JP"
La sortie est vide! Comment dois-je utiliser grep pour find mon input dans cette string?
Permutez les arguments des commands:
echo "US,CA,CH,JP" | grep US
Dans:
echo US | grep "US,CA,CH,JP"
vous searchz la string (model) US,CA,CH,JP
dans la string d'input US
, qui ne correspond pas de manière anticipée.
À less que vous n'attendiez que les virgules agissent comme une instruction "ou", dans ce cas, il vous suffit de changer les virgules en canaux et d'utiliser l'option -E
pour les expressions régulières étendues :
echo US | grep -E "US|CA|CH|JP"
Ou changez les virgules en caractères de nouvelle ligne:
echo US | grep "US CA CH JP"
J'utiliserais $echo US | grep -i "US|CA|JP|CH"
$echo US | grep -i "US|CA|JP|CH"
Au lieu d'éco, donnez-lui une list ou quelque chose, où il peut effectivement aller chercher des templates, au lieu de les chercher en "US"