Je veux faire ceci:
- exécuter une commande
- la capture de la sortie
- sélectionnez une ligne
- sélectionnez une colonne de cette ligne
Juste comme exemple, disons que je veux obtenir le nom de la commande à partir d'un $PID
(veuillez noter que ceci est juste un exemple, je ne dis pas que c'est la meilleure façon d'obtenir un nom de commande à partir d'un id de processus - mon vrai problème, c'est avec une autre commande dont le format de sortie que je ne contrôle pas).
Si j'exécute ps
je reçois:
PID TTY TIME CMD
11383 pts/1 00:00:00 bash
11771 pts/1 00:00:00 ps
Maintenant, je n' ps | egrep 11383
et obtenir
11383 pts/1 00:00:00 bash
Prochaine étape: ps | egrep 11383 | cut -d" " -f 4
. La sortie est:
<absolutely nothing/>
Le problème est qu' cut
coupe la sortie par des espaces simples, et en tant que ps
ajoute de certains espaces entre les 2e et 3e colonnes de garder une certaine ressemblance d'une table, cut
sélectionne une chaîne vide. Bien sûr, je pourrais utiliser cut
pour sélectionner le 7 et non le 4ème champ, mais comment puis-je le sais, spécialement lorsque la sortie est variable et inconnue à l'avance.