grep menggunakan ekspresi reguler seperti yang didefinisikan oleh POSIX . Untuk alasan apa pun POSIX belum didefinisikan \t
sebagai tab.
Anda memiliki beberapa alternatif:
beri tahu grep untuk menggunakan ekspresi reguler seperti yang didefinisikan oleh perl (perl memiliki \t
sebagai tab):
grep -P "\t" foo.txt
halaman manual memperingatkan bahwa ini adalah fitur "eksperimental". setidaknya \t
tampaknya berfungsi dengan baik. tetapi fitur perl regex yang lebih canggih mungkin tidak.
gunakan printf untuk mencetak karakter tab untuk Anda:
grep "$(printf '\t')" foo.txt
gunakan karakter tab literal:
grep "^V<tab>" foo.txt
yaitu: ketik grep "
, lalu tekan ctrl+v
, lalu tekan tab
, lalu ketik " foo.txt
. menekan ctrl+v
di terminal menyebabkan kunci berikutnya diambil kata demi kata. itu berarti terminal akan memasukkan karakter tab bukannya memicu beberapa fungsi yang terikat pada tombol tab.
gunakan fitur kutip ansi c dari bash:
grep $'\t' foo.txt
ini tidak bekerja di semua shell.
gunakan awk:
awk '/\t/'
gunakan sed:
sed -n '/\t/p'
Lihat artikel wikipedia tentang ekspresi reguler untuk tinjauan umum dari kelas karakter yang ditentukan dalam POSIX dan sistem lainnya.