grep, POSIX tarafından tanımlanan normal ifadeleri kullanıyor . Hangi sebeplerden dolayı POSIX \t
sekme olarak tanımlanmadı .
Birkaç alternatifiniz var:
grep'e perl (perl \t
sekmesi 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 \t
iyi ç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+v
düğmesine basın, tab
sonra yazın, " foo.txt
. ctrl+v
terminale 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 .