Làm cách nào để nhập ký tự tab theo nghĩa đen trong vỏ bash?


72

Ví dụ: tôi muốn sử dụng tiện ích sắp xếp với tùy chọn -t để chỉ định dấu phân cách tab, nhưng

sort -t "\t"

không hoạt động.

Câu trả lời:


85

Đừng sử dụng dấu ngoặc kép.

sort -t $'\t'

Hoặc tôi nghĩ Ctrl V chèn một Tab ??

Biên tập:

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


Không tab nào chèn một tab?
RedGrittyBrick

4
@RedGrittyBrick Tab hoàn tất.
Daniel Beck

12
Một mình Control-V sẽ không hoạt động; Tab Control-V + sẽ. Tôi thích các $'...'mẹo, mặc dù; bây giờ tôi đã học được một cái gì đó mới. :-)
L2G

Tôi đã luôn học nó như là $' '. Nó cho phép bạn nhập một chuỗi, nhưng cũng có các ký tự thoát. Trích dẫn kép in theo nghĩa đen \tNếu bạn để lại dấu ngoặc kép, bạn nhận được một ký tự tab.
Surfasb

59

Hãy thử Control- v, sau đó Tab. Nếu bạn thấy tab con trỏ ở bên phải, nó hoạt động.

Theo nhận xét của Mark, bạn cũng có thể thử Control- vvà sau đó Control- i.


Khi tôi làm điều này, tôi nhận được một tab thực sự (tức là thụt đầu dòng).
Daniel Beck

2
Úi. Bạn đúng. Nhưng nó đang nhập ký tự tab, không thực hiện hoàn thành dòng lệnh (đó là những gì bash thường làm với một tab). Tôi đã thử sort -t " "(với tab nghĩa đen như mô tả ở trên) và nó hoạt động với tôi.
L2G

Đúng, đó là những gì tôi có nghĩa là thụt đầu dòng. Không biết một thuật ngữ tốt hơn.
Daniel Beck

1
Ctrl-v, Ctrl-i cũng sẽ hoạt động (Tôi tìm thấy câu trả lời này ở đây ). Ngoài ra, tôi nghĩ rằng một Ctrl-q, Ctrl-v, Tab sẽ hoạt động. Cảm ơn L2G!
Đánh dấu

BTW, tôi rất muốn chấp nhận cả hai câu trả lời, nhưng vì tôi nghĩ giải pháp của Surfasb dễ đọc hơn, tôi đã chấp nhận câu trả lời của cô ấy. Tôi cũng thích bạn, vì vậy, đã bình chọn nó. Cảm ơn!
Đánh dấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.