Попробуйте использовать разрез ...его быстро и легко
Сначала вы повторяющиеся пробелы, вы можете сжать эти вниз в единое пространство между колоннами, если тот, что вы хотите с tr -s ' '
Если каждый столбец уже имеет только один разделитель между ним, вы можете использовать cut -d ' ' -f-2
печатать поля (столбцы) < = 2.
, например, если ваши данные в файле input.txt вы можете выполнить одно из следующих действий:
cat input.txt | tr -s ' ' | cut -d ' ' -f-2
Или, если вы лучше Причина об этой проблеме, удалив 3-й столбец можно записать следующее
cat input.txt | tr -s ' ' | cut -d ' ' --complement -f3
разрез является довольно мощным, вы можете также извлекать диапазоны байтов или символов, в дополнение к столбцам
отрывок из человека странице на синтаксисе, как указать диапазон списка
Each LIST is made up of one range, or many ranges separated by commas.
Selected input is written in the same order that it is read, and is
written exactly once. Each range is one of:
N N'th byte, character or field, counted from 1
N- from N'th byte, character or field, to end of line
N-M from N'th to M'th (included) byte, character or field
-M from first to M'th (included) byte, character or field
так что вы могли бы также сказали, что вы хотите конкретные столбцы 1 и 2 с ...
cat input.txt | tr -s ' ' | cut -d ' ' -f1,2
Я озадачен: я открыл щедрость, чтобы продвинуть ответ Эд Мортона, и до сих пор пост с [самыми upvotes] (http://stackoverflow.com/posts/15361632/timeline) в эти дни был вопросом , который не показывал никаких исследований '(@ _ @)'. – fedorqui