2010-03-07 22 views

Trả lời

4

Vì đây vẫn là một kết quả google hàng đầu, một câu trả lời Cập nhật:

Các current release hỗ trợ bash phong cách {c1..c2} nơi c1c2 là những nhân vật:

Biểu thức có dạng '{c1..c2}', trong đó c1c2 là các ký tự đơn (có thể là cha nhiều byte racters), được mở rộng đến mọi ký tự trong phạm vi từ c1 đến c2 trong bất kỳ chuỗi ký tự nào được sử dụng trong nội bộ. Đối với các ký tự có điểm mã dưới 128, đây là US ASCII (đây là trường hợp duy nhất mà hầu hết người dùng sẽ cần). Nếu bất kỳ ký tự can thiệp nào không thể in được, thì báo giá thích hợp được sử dụng để làm cho nó có thể in được. Nếu chuỗi ký tự bị đảo ngược, đầu ra theo thứ tự ngược lại, ví dụ: ‘{d..a}’ được thay thế bằng ‘d c b a’.

Điều này chắc chắn hiện diện trong 5.0.7 trở đi. Tôi dường như không thể tìm thấy khi điều này được giới thiệu trong số zsh release history, nhưng first archived version documenting it cho biết nó đã được giới thiệu từ tháng 7 năm 2012 đến tháng 11 năm 2014.

+3

Tôi có thể xác nhận rằng tính năng này là * not * trong 5.0.5 (phiên bản đi kèm với Mac OS X). – chepner

25
zsh$ setopt BRACE_CCL 
zsh$ echo {a-k} 
a b c d e f g h i j k 
zsh$ echo {1-9} 
1 2 3 4 5 6 7 8 9 
+0

JFTR zsh git cho biết rằng 'brace_ccl' đã có trong cam kết ban đầu được thực hiện trong 1999 cho phiên bản 3.1.5 –

+0

Có cách nào để có một phạm vi như '{1-12}' để mở rộng thành '1 2 3 ... 9 10 11 12'? –

+0

@KedarMhaswade: Tại sao cú pháp '{1..12} 'không phù hợp với nhu cầu của bạn? – mpy

Các vấn đề liên quan