Bagaimana cara memasukkan karakter tab literal dalam bash shell?

72

Sebagai contoh, saya ingin menggunakan utilitas sortir dengan opsi -t untuk menentukan pemisah tab, tetapi

sort -t "\t"

tidak bekerja

Menandai
sumber

Jawaban:

85

Jangan gunakan tanda kutip ganda.

sort -t $'\t'

Atau saya pikir Ctrl V menyisipkan Tab ??

Sunting:

http://www.gnu.org/s/bash/manual/html_node/ANSI_002dC-Quoting.html#ANSI_002dC-Quoting

surfasb
sumber
Tidakkah tab menyisipkan tab?
RedGrittyBrick
4
@RedGrittyBrick Tab selesai.
Daniel Beck
12
Control-V sendiri tidak akan bekerja; Control-V + Tab akan. Saya suka $'...'triknya; sekarang saya sudah belajar sesuatu yang baru. :-)
L2G
Saya selalu mempelajarinya sebagai $' '. Ini memungkinkan Anda untuk memasukkan string, tetapi juga memiliki karakter yang lolos. Kutipan ganda mencetak secara harfiah \tJika Anda mengabaikan tanda kutip, Anda mendapatkan karakter tab.
surfasb
59

Coba Control- v, lalu Tab. Jika Anda melihat tab kursor ke kanan, itu berfungsi.

Menurut komentar oleh Mark Anda juga dapat mencoba Control- vdan kemudian Control- i.

L2G
sumber
Ketika saya melakukan ini, saya mendapatkan tab nyata (yaitu lekukan).
Daniel Beck
2
Ups. Kamu benar. Tapi itu adalah memasuki karakter tab, tidak melakukan baris perintah selesai (yang adalah apa pesta biasanya dilakukan dengan tab). Saya mencoba sort -t " "(dengan tab literal seperti dijelaskan di atas) dan itu berhasil untuk saya.
L2G
Yap, itu yang saya maksud dengan indentasi. Tidak tahu istilah yang lebih baik.
Daniel Beck
1
Ctrl-v, Ctrl-i juga akan berfungsi (saya menemukan jawaban ini di sini ). Juga, saya pikir Tab Ctrl-q, Ctrl-v, akan bekerja. Terima kasih L2G!
Tandai
BTW, saya ingin sekali menerima kedua jawaban itu, tetapi karena saya pikir solusi surfasb lebih mudah dibaca, saya menerimanya. Saya suka milikmu juga, jadi pilihlah. Terima kasih!
Markus