Линукс командной строки: вырезать (с пустыми полями) - PullRequest
3 голосов
/ 25 сентября 2011

У меня есть файл (input.txt) со столбцами данных, разделенными пробелами.Я хочу получить 9-й столбец данных и далее.

Обычно я хотел бы сделать:

cut -d " " -f 9- input.txt

Однако в этом файле иногда поля разделяются несколькими пробелами (и числопробелов варьируется для каждой строки / столбца).Обрезка, похоже, не рассматривает последовательные пробелы как один разделитель.

Что мне вместо этого делать?

Ответы [ 2 ]

4 голосов
/ 25 сентября 2011
sed -r 's/ +/ /g' input.txt|cut -d " " -f 9-
3 голосов
/ 25 сентября 2011

Вы можете использовать sed для замены n пробелов одним пробелом:

sed -r 's/\ +/\ /g' input.txt | cut -d ' ' -f 9-

Только убедитесь, что между столбцами нет никаких вкладок.

...