L’utilisation de la combinaison des commandes grep et cut
I. Présentation
Dans le but de récupérer certaines parties d’un résultat suite à la commande grep, il peut paraitre utile d’utiliser la commande cut qui coupera notre résultat à partir d’un caractère par exemple.
II. Exemple d’utilisation
Nous souhaitons par exemple dans un script bash mettre notre adresse IP dans une variable. En toute logique la commande pour récupérer notre adresse IP est la suivante :
Nous avons alors trop d’informations puisque nous souhaitons uniquement l’adresse IP de notre machine. Nous pouvons alors utiliser grep pour nous retrouver seulement avec une seule ligne, nous savons que la ligne contenant notre IP contient également le terme « Bcast », nous passons alors cette commande pour nous retrouver uniquement avec cette ligne :
Voila qui est déjà mieux, cependant nous ne voulons toujours uniquement notre IP. Nous voyons que notre ligne est plusieurs fois séparée par des espaces. Cela tombe bien, la commande cut permet de découper une entrée en utilisant un caractère, nous pouvons donc utiliser ici l’espace :
Quelques explications :
- Ifconfig : c’est la commande que l’on passe pour avoir notre IP
- grep « Bcast » : c’est ce qui nous permet d’isoler la ligne contenant notre IP
- cut : c’est une commande linux permettant de sélectionner une partie de plusieurs entrées séparés par un caractère délimiteur.
- -d " " : cette option nous sert à préciser le délimiteur (avec -d, ce sera forcément un caractère). Ici, un simple espace
- -f : c’est la partie que nous voulons afficher. Ici, nous affichons ce qui est après le 12ème espace
III. Aller plus loin
Voici ce qui nous arrive si l’on souhaite afficher ce qu’il y a après le 13ème espace:
Oops, nous voyons que c’est un autre espace qui nous est affiché, nous voyons en effet qu’il y a deux espaces entre l’adresse IP et le Broadcast. Nous devons donc afficher ce qu’il y a après le 14ème espace pour avoir l’adresse de broadcast :
Si nous souhaitons voir disparaitre le « adr : », il nous suffit de recouper à nouveau notre entrée comme suivant :
Le couple des commandes grep et cut peut être très puissant pour le trie et la gestion d'un grand nombre de sortie.