Disons que pendant votre journée de travail, vous rencontrez à plusieurs reprises la forme suivante de sortie en colonnes à partir d'une commande dans bash (dans mon cas, lors de l'exécution svn st
dans mon répertoire de travail Rails):
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
afin de travailler avec la sortie de votre commande - dans ce cas, les noms de fichiers - une sorte d'analyse est nécessaire pour que la deuxième colonne puisse être utilisée comme entrée pour la commande suivante.
Ce que j'ai fait est d'utiliser awk
pour accéder à la deuxième colonne, par exemple lorsque je veux supprimer tous les fichiers (pas que ce soit un cas d'utilisation typique :), je ferais:
svn st | awk '{print $2}' | xargs rm
Puisque je tape souvent ceci, une question naturelle est: y a-t-il un moyen plus court (donc plus cool) d'accomplir cela dans bash?
REMARQUE: Ce que je demande est essentiellement une question de commande shell même si mon exemple concret est sur mon flux de travail svn. Si vous pensez que le flux de travail est idiot et que vous suggérez une approche alternative, je ne vous voterai probablement pas, mais d'autres pourraient le faire, car la question ici est vraiment de savoir comment obtenir la sortie de la commande de la n-ième colonne dans bash, de la manière la plus courte possible . Merci :)