Recherchez-vous un code de région entier ou un code de région qui contient le sous-masque?
Si vous voulez le code de région entière et qu'il y a au moins un espace de chaque côté, vous pouvez formater le grep en ajoutant un espace unique de chaque côté du code de région spécifique. Il existe d'autres façons d'indiquer les limites de mots en utilisant des expressions régulières.
grep ' 04 ' numbers.txt
S'il peut y avoir des espaces dans les champs de nom ou de numéro de téléphone, cette solution risque de ne pas fonctionner. En outre, si vous le motif peut être une sous-partie du code de la région, alors awk est un meilleur outil. Cela suppose que le champ 'nom' ne contient aucun espace. L'opérateur correspondant '==' requiert que le motif corresponde exactement au champ. Cela peut être difficile quand il y a des espaces de chaque côté du terrain.
awk '$2 == "04" {print $0}' < numbers.txt
Si le fichier est un séparateur, que ce qui peut être mis en awk en utilisant l'argument de la « -F » à awk pour définir le caractère de séparateur de champ. Dans cet exemple, une virgule est utilisée comme séparateur de champs. En outre, l'opérateur correspondant dans cet exemple est un '~' permettant au motif d'être n'importe quelle partie du code de région (si cela est applicable). Le "/ y" est un moyen de faire correspondre les limites de travail au début et à la fin de l'expression.
awk -F , '$2 ~ /\y04\y/ {print $0}' < numbers.txt
Dans les deux exemples, le {print $ 0} est facultative, si vous voulez que la ligne complète à imprimer. Cependant, si vous voulez faire un formatage sur la sortie, cela peut être fait à l'intérieur de ce bloc.
même "grep '04 'numbers.txt" –
Merci. * Bounces tête contre le mur le plus proche. ** – KdgDev