Digamos que, durante seu dia de trabalho, você encontre repetidamente a seguinte forma de saída em colunas de algum comando no bash (no meu caso, executando svn st
no meu diretório de trabalho do Rails):
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
para trabalhar com a saída do seu comando - nesse caso, os nomes dos arquivos - é necessário algum tipo de análise para que a segunda coluna possa ser usada como entrada para o próximo comando.
O que eu tenho feito é usar awk
para chegar à segunda coluna, por exemplo, quando eu quero remover todos os arquivos (não que isso seja um típico caso de usuário :), eu faria:
svn st | awk '{print $2}' | xargs rm
Como eu digito muito isso, uma pergunta natural é: existe uma maneira mais curta (portanto mais fria) de fazer isso no bash?
NOTA: O que estou perguntando é essencialmente uma pergunta de comando do shell, mesmo que meu exemplo concreto esteja no meu fluxo de trabalho svn. Se você achar que o fluxo de trabalho é tolo e sugerir uma abordagem alternativa, provavelmente não votarei contra você, mas outros podem, já que a questão aqui é realmente como obter o comando da n-ésima coluna no bash, da maneira mais curta possível . Obrigado :)