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

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


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.