Diciamo che durante la tua giornata lavorativa incontri ripetutamente la seguente forma di output in colonne da alcuni comandi in bash (nel mio caso dall'esecuzione svn st
nella mia directory di lavoro di Rails):
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
per lavorare con l'output del tuo comando - in questo caso i nomi dei file - è necessaria una sorta di analisi in modo che la seconda colonna possa essere utilizzata come input per il comando successivo.
Quello che ho fatto è usare awk
per accedere alla seconda colonna, ad esempio quando desidero rimuovere tutti i file (non che si tratti di un tipico caso d'uso :), farei:
svn st | awk '{print $2}' | xargs rm
Dal momento che scrivo molto, una domanda naturale è: esiste un modo più breve (quindi più freddo) per ottenere questo risultato in bash?
NOTA: Quello che sto chiedendo è essenzialmente una domanda di comando shell anche se il mio esempio concreto è sul mio flusso di lavoro svn. Se ritieni che il flusso di lavoro sia stupido e suggerisca un approccio alternativo, probabilmente non ti voterò, ma altri potrebbero, dal momento che la domanda qui è davvero come ottenere l'output del comando n-esima colonna in bash, nel modo più breve possibile . Grazie :)