Как настроить порядок сортировки символов?

Большинство окон приложений (firefox, pcmanfm, libre office и т. Д.) Позволяют изменять их размер в пикселях.

Большинство (все?) Эмуляторов терминалов позволяют изменять их размер только в символах - например, 80x24.

В моей системе XFCE (с экраном 2560x1440) у меня есть верхняя панель (меню, значки быстрого доступа, некоторые индикаторы состояния) и нижняя панель (панель задач, переключатель рабочего стола, строка состояния и т. Д.). Между этими двумя я могу разместить окно терминала шириной 192 символа и высотой 51 символ. Есть небольшая область (может быть, 4 или 5 пикселей), которая не закрывается окном терминала.

Комбинация моей настройки шрифта «Моноширинный обычный» @ 16pt и 192x51 символов требует 2513 пикселей на 1336 пикселей (так говорит xwininfo ). Горстки дополнительных пикселей недостаточно , чтобы иметь дополнительную строку (если бы она была, я бы ее использовал).

4
11.01.2017, 19:58
2 ответа

Похоже, что команда sort может помочь.

-t, --field-separator = SEP

использовать SEP вместо перехода от непустого к пустому

-k, --key = POS1 [, POS2]

запустить ключ с POS1 ( origin 1), завершите его на POS2 (конец строки по умолчанию)

ls -lAr|sort -t . -k2
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:35 a
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:35 b
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 c
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 d
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:38 A
-rw-r--r-- 1 CRM CCRM 0 Jan 20 10:34 .a
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .A
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:38 .b
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .B
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .C
-rw-r--r-- 1 CRM CCRM 0 Jan 20 09:36 .D
2
27.01.2020, 20:59

Языковой стандарт km _KH близок к тому, что вы просили, хотя и со строчными буквами перед прописными. Язык km _KH был включен в стандартную установку Centos 7. Поэтому можно предположить, что он может быть доступен в других дистрибутивах, возможно, через дополнительные пакеты в репозиториях.

Вы можете поместить это определение псевдонима в свой.bashrc:

 $ alias l='LC_COLLATE=km_KH ls -lA'
 $ touch a b c A B C.a.b.c.A.B.C
 $ l
total 0
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.a
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.A
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.b
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.B
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.c
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01.C
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 a
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 A
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 b
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 B
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 c
-rw-rw-r-- 1 g greg 0 2020-11-08 18:01 C

Локаль ar _SA также близка к тому, что вы просили, хотя файлы точек указаны последними:

-rw-rw-r-- 1 g greg 0 Nov  8 18:33 A
-rw-rw-r-- 1 g greg 0 Nov  8 18:33 a
-rw-rw-r-- 1 g greg 0 Nov  8 18:33 B
-rw-rw-r-- 1 g greg 0 Nov  8 18:33 b
-rw-rw-r-- 1 g greg 0 Nov  8 18:33 C
-rw-rw-r-- 1 g greg 0 Nov  8 18:33 c
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.A
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.a
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.B
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.b
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.C
-rw-rw-r-- 1 g greg 0 Nov  8 18:33.c

Вот простой цикл, чтобы увидеть, как каждая установленная локаль сортирует текущий каталог:

for a in $(locale -a);do echo $a;LC_COLLATE=$a ls -Al;done|&less

Или вы можете использовать некоторые полезные приемы, подобные этому:Сортировка по пользовательскому шаблону

Ответ на сортировку и объединение здесь просто завораживает:http://superuser.com/questions/489275/how-to-do-custom-sorting-using-unix-sort

Или вы можете стиснуть зубы и определить свою собственную локаль, см.http://askubuntu.com/questions/653008/how-to-create-a-new-system-locale

1
08.11.2020, 21:58

Теги

Похожие вопросы