GNU grep
(, который, как я предполагаю, вы используете ), по умолчанию не знает \t
как вкладку. В регулярном выражении POSIX \t
соответствует литералу t
, а \\t
соответствует \t
.
Чтобы сопоставить литеральный символ табуляции с регулярным выражением POSIX, вставьте его в свое выражение:
grep -r $'".*\t.*"'.
Это использует $'...'
в bash
для расширения управляющих последовательностей в строке до их соответствующего значения на языке C.
Если вы включите Perl -как регулярные выражения (PCRE )с -P
в GNU grep
, он распознает \t
как символ табуляции в выражении:
grep -P -r '".*\t.*"'.
Также обратите внимание, что ваше выражение будет соответствовать
"hello" <tab> "world"