Допустим, что в течение вашего рабочего дня вы неоднократно сталкивались со следующей формой столбцового вывода какой-то команды в 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 как можно более коротким способом. , Спасибо :)