bash: кратчайший способ получить n-й столбец вывода

Предположим, что в течение вашего рабочего дня вы неоднократно сталкивались со следующей формой столбцового вывода некоторой команды в bash (в моем случае из выполнения svn st в моем рабочем каталоге Rails):

?       changes.patch
M       app/models/superman.rb
A       app/models/superwoman.rb

по порядку для работы с выводом вашей команды - в данном случае имен файлов - требуется какой-то синтаксический анализ, чтобы второй столбец можно было использовать в качестве ввода для следующей команды.

Что я делал, так это использовал awk для перехода ко второму столбцу, например, когда я хочу удалить все файлы (не то, что это типичный случай использования :), я бы сделал:

svn st | awk '{print $2}' | xargs rm

Так как я набираю это много, естественный вопрос: есть ли короче (таким образом, круче) способ сделать это в bash?

ПРИМЕЧАНИЕ. По сути, я задаю вопрос о командной оболочке, хотя мой конкретный пример относится к моему рабочему процессу svn. Если вы считаете, что рабочий процесс глуп, и предлагаете альтернативный подход, я, вероятно, не буду вас опровергать, но другие могут, поскольку вопрос здесь действительно заключается в том, как получить вывод команды n-го столбца в bash как можно более коротким способом. , Спасибо :)

147
задан Sv1 6 September 2011 в 06:18
поделиться