LINUX.ORG.RU

Как заставить grep обрабатывать шаблоны с табуляцией?


0

1

Подскажите, пожалуйста, что должно быть указано в шаблоне, чтобы по нему можно было найти строчки из файла, скажем, в которых 5 табуляций подряд.

\t не помогает, как подставить x09, тоже не соображу...

Долбаюсь с обеда :(((



Последнее исправление: SmAdm (всего исправлений: 1)

включи бинарный режим

visual ★★★
()

Долбаюсь с обеда :(((

Да чтоб я так работал, как ты.

[Ctrl+v] [Ctrl+i]
так ты вставишь Tab.

adriano32 ★★★
()
$ echo -e '\t\tAS\n\tDF' |grep -E $'\t{2}'
		AS
uzbl
()

Судя по хорошей таблице и по опытам, ни в POSIX BRE (Basic Regular Expressions), ни в POSIX ERE (Extended Regular Expressions), ни даже в GNU BRE/ERE не входят ни \n, ни \r, ни \t, ни способ вставить произвольный символ.

Итак, варианты:

  • Как предложил adriano32, вставить таб простым текстом
  • Как предложил uzbl, вставить таб, воспользовавшись функцией шелла по преобразованию спецсимволов в строке ($'\t'). Не знаю, правда, насколько это совместимо с POSIX.
  • Использовать GNU GREP и флаг -P (Perl-совместимый регексп).
proud_anon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.