awk -F'[,]' '/^[ ]/{print $1}'
Действовал бы только на строках, которые начинаются с пробела, таким образом пропуская строки без него. Другой вариант может заключаться в поиске строк, содержащих запятую или другое регулярное выражение, если вместо пробелов используются коварные табуляции ...
тл;др;vim
не vi
.
В vi
для отступа строки следует использовать Control -T вместо Tab.
Если вам трудно переучиться, вы можете добавить сопоставление режима ввода с Tab на Control -T:
printf 'map! \x16\t \x14\n' >> ~/.nexrc
В реальном vi
и в nvi
клоне (, используемом в FreeBSD ), элемент управления -D будет стирать символы автоотступа до предыдущей "ширины сдвига" граница. Он не удалит символы табуляции или пробела, введенные вами вручную, либо нажатием клавиши -I, табуляции или пробела.
Это часть той самой ошибки -для -совместимости с ошибками.
Об этом есть подробное обсуждение в комментарии к источнику, в /usr/src/contrib/nvi/vi/v_txt.c
. Ввод обрабатывается как литерал ␄
символ , если режимai
не включен и последний вставленный символ был символом автоотступа (либо с помощью Control + T или автоматический отступ на новой строке ).
В комментарии также отмечается, что исходные vi
Control + T и Control + D были еще более ограниченными, влияет на отступ только в том случае, если они были введены первым в режиме вставки.