grep, POSIX tarafından tanımlanan normal ifadeleri kullanıyor . Hangi sebeplerden dolayı POSIX \tsekme olarak tanımlanmadı .
Birkaç alternatifiniz var:
grep'e perl (perl \tsekmesi vardır) ile tanımlanan normal ifadeleri kullanmasını söyleyin :
grep -P "\t" foo.txt
man sayfası bunun “deneysel” bir özellik olduğu konusunda uyarıyor. en azından \tiyi çalışıyor gibi görünüyor. ancak daha gelişmiş perl regex özellikleri olmayabilir.
Sizin için bir sekme karakteri yazdırmak için printf kullanın:
grep "$(printf '\t')" foo.txt
değişmez sekme karakterini kullanın:
grep "^V<tab>" foo.txt
yani: type grep ", ardından ctrl+vdüğmesine basın, tabsonra yazın, " foo.txt. ctrl+vterminale basılması bir sonraki anahtarın yazılı olarak alınmasına neden olur. bu, terminalin sekme tuşuna bağlı bazı işlevleri tetiklemek yerine sekme karakteri ekleyeceği anlamına gelir.
bash ansi c quoting özelliğini kullanın :
grep $'\t' foo.txt
bu tüm kabuklarda çalışmaz.
awk kullan:
awk '/\t/'
sed kullanın:
sed -n '/\t/p'
POSIX ve diğer sistemlerdeki tanımlanmış karakter sınıflarına genel bir bakış için normal ifadeler hakkındaki wikipedia makalesine bakın .