Вот возможный подход с использованием Bash / GNU CORETILS, который не требует большого количества хранения:
CUR
Column-столбец файла и запись индексов любых столбцов, которые не состоять полностью из 9s; Если вы знаете, сколько столбцов имеет ваш файл (в этом случае 10), он может быть таким же простым, как
для ((i = 1; i <11; i ++)); делать
[[$ (cut --d '' -ff $ {i} файл | Sed '/ ^ 9 $ / D' | WC -L) -EQ 0]] || A + = ($ I)
Готово
(используя тот факт, что только столбцы, состоящие полностью из 9-х, имеют длину 0, после чего все 9s удаляются); Затем
проходят список столбцов, которые будут сохранены до дополнительно команды
, используя изменение IFS
, чтобы повернуть массив в список, разделенный запятыми
(если = ,; порезать --d '' -f "$ {a [*]}" файл)
Если ваша версия вырезает
- дополняет флаг - дополняющую
, вы можете записать столбцы, которые делают [11404] и Cut
Все, кроме тех:
for ((i=1;i<11;i++)); do
[[ $(cut -d' ' -f${i} file | sed '/^9$/d' | wc -l) -eq 0 ]] && a+=($i)
done
(IFS=, ; cut -d' ' --complement -f"${a[*]}" file)
Это может быть grub2-mkconfig, если у вас версия grub 2.[116895].