Если под извлечением вы имеете в виду удаление, вы можете использовать awk
$ awk 'NF < 10' my-file.in > my-file.out
Breakdown
NF
- это переменная awk, которая показывает, сколько поля, которые есть в текущей обрабатываемой строке.
<10
Если NF меньше 10, строка будет напечатана.
my-file.in
Входной файл.
> my-file.out
Перенаправить вывод в новый файл.
Если вы хотите узнать больше об awk и его встроенных функциях, я нашел здесь довольно красивую схему встроенных переменных awk .
Если ваш вопрос заключается в том, как я могу распечатать строки из файла, которые имеют больше, чем "max" количество столбцов, вот один из способов:
awk -v max=9 'NF > max' your-file-here
передайте любое значение для max (здесь 9), которое вы хотите указать.
$ awk 'NF > 10 { print NR }' data.in
Это выведет номера строк (на самом деле номера записей, но поскольку строка - это запись по умолчанию, разницы нет) каждой строки, содержащей более 10 полей. Поле - это строка, по умолчанию разделенная пробелами, если у вас другой разделитель, используйте -F
(-F ','
для запятых):
$ awk -F ',' 'NF > 10 { print NR }' data.in
Если вы хотите видеть строку, а не ее номер, это еще проще:
$ awk 'NF > 10' data.in