Скажем, что во время рабочего дня вы неоднократно сталкиваетесь с следующей формой столбчатого вывода из некоторой команды в bash (в моем случае от выполнения svn st
в рабочем каталоге Rails):
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
чтобы работать с выводом вашей команды - в этом случае имена файлов - необходим какой-то синтаксический анализ, чтобы второй столбец мог использоваться как вход для следующей команды.
То, что я делал, это использовать awk
для получения второго столбца, например. когда я хочу удалить все файлы (не то, что типичный usecase:), я бы сделал:
svn st | awk '{print $2}' | xargs rm
Поскольку я печатаю это много, естественный вопрос: существует ли более короткий (таким образом, более холодный) способ выполнения этого в bash?
Примечание: Я прошу, по сути, вопрос командной оболочки, хотя мой конкретный пример - в моем рабочем процессе svn. Если вы считаете, что рабочий процесс глупо и предлагает альтернативный подход, я, вероятно, не буду голосовать за вас, но другие могут, так как вопрос здесь заключается в том, как получить вывод команды n-го столбца в bash, в кратчайшие способ возможно. Спасибо:)