2011-02-12 8 views
7

Z powodzeniem używałam wcześniej grep -P, aż dostałem maszynę, na której grep nie jest skompilowany z obsługą wyrażeń regularnych Perla. Teraz mam problemy dopasowania zakładki: \t charakter,Wyszukaj tabulatory bez -P, używając 'grep'

grep -G '\t' matches a literal 't' 
grep -E '\t' matches a literal 't' 

Jak dopasować klapki?

Odpowiedz

11

Spróbuj to zamiast:

grep -G $'\t' 

Aby uzyskać więcej informacji proszę zobaczyć bug #23535: Grep Doesn't Support \t as a tab character.

+0

Rzeczywiście, dzięki za sugestię. Chociaż nie potrzebowałem opcji -G do rozwiązania mojego problemu, tylko sekwencja ucieczki (w moim przypadku coś takiego działało: grep $ '\ t' $ patternPrefix $ '\ t'morePatternData searchFile). –

1

Perl-RegEx zrozumieć '[\ t]', więc można zrobić tak:

echo -e "\t : words" | grep -P '^[\t]' 

podstawowy-regexp i rozszerzonym regexp potrzeby tych "pustych" (RegEx dla „Przestrzeni "/ "Tab"):

echo -e "\t : words" | grep -G '^[[:blank:]]' 
echo -e "\t : words" | grep -E '^[[:blank:]]' 

może można użyć go w ten sposób:

echo -e "\t : words" | grep -E '^[[:blank:]]{2,8}' 
echo -e "\t : words" | grep -G '^[[:blank:]]\{2,8\}' 
+0

'grep -P' jest świetne (składnia Perla, szybka implementacja), ale niestety jest opcjonalne i niektóre dystrybucje nadal go nie uwzględniają. –