<Попередній | зміст | Наступна>
Розширення брекетів
Мабуть, найдивніше розширення називається розширення дужки. З його допомогою ви можете створити кілька текстових рядків із шаблону, що містить дужки. Ось приклад:
[me@linuxbox ~]$ echo Передній-{A,B,C}-Назад
Спереду-А-Ззаду Перед-В-Ззаду Перед-С-Ззаду
[me@linuxbox ~]$ echo Передній-{A,B,C}-Назад
Спереду-А-Ззаду Перед-В-Ззаду Перед-С-Ззаду
Шаблони, які розгортаються в дужках, можуть містити передню частину, яка називається a преамбула і задню частину, яка називається a постскрипт. Сам вираз у дужках може містити або список рядків, розділених комами, або діапазон цілих чисел або окремих символів. Шаблон не може містити вбудованих пробілів. Ось приклад використання діапазону цілих чисел:
[me@linuxbox ~]$ номер відлуння_{1..5}
Число_1 Число_2 Число_3 Число_4 Номер_5
[me@linuxbox ~]$ номер відлуння_{1..5}
Число_1 Число_2 Число_3 Число_4 Номер_5
Цілі числа також можуть бути з нульовим доповненням подобається так:
[me@linuxbox ~]$ луна {01..15}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
[me@linuxbox ~]$ луна {01..15}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
[me@linuxbox ~]$ луна {001..15}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
[me@linuxbox ~]$ луна {001..15}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
Діапазон літер у зворотному порядку:
[me@linuxbox ~]$ луна {Z..A}
ZYXWVUTSRQPONMLKJIHGF EDCBA
[me@linuxbox ~]$ луна {Z..A}
ZYXWVUTSRQPONMLKJIHGF EDCBA
Розширення дужок можуть бути вкладеними:
[me@linuxbox ~]$ відлуння a{A{1,2},B{3,4}}b
aA1b aA2b aB3b aB4b
[me@linuxbox ~]$ відлуння a{A{1,2},B{3,4}}b
aA1b aA2b aB3b aB4b
То для чого це добре? Найпоширенішою програмою є створення списків файлів або каталогів, які потрібно створити. Наприклад, якби ми були фотографами і мали велику колекцію зображень, які ми хотіли б упорядкувати по роках і місяцях, перше, що ми могли б зробити, це створити серію каталогів, названих у числовому форматі «рік-місяць». Таким чином, назви каталогів будуть відсортовані в хронологічному порядку. Ми могли б надрукувати повний список каталогів, але це дуже багато роботи, і воно також схильне до помилок. Замість цього ми могли б зробити це:
[me@linuxbox ~]$ Фотографії mkdir
[me@linuxbox ~]$ CD фотографії
[me@linuxbox Photos]$ mkdir {2007..2009}-{01..12}
[me@linuxbox Photos]$ ls
2007-01 | 2007-07 | 2008-01 | 2008-07 | 2009-01 | 2009-07 |
2007-02 | 2007-08 | 2008-02 | 2008-08 | 2009-02 | 2009-08 |
2007-03 | 2007-09 | 2008-03 | 2008-09 | 2009-03 | 2009-09 |
2007-04 | 2007-10 | 2008-04 | 2008-10 | 2009-04 | 2009-10 |
2007-05 | 2007-11 | 2008-05 | 2008-11 | 2009-05 | 2009-11 |
2007-06 | 2007-12 | 2008-06 | 2008-12 | 2009-06 | 2009-12 |
Досить гладко!