Как я могу отсортировать вывод awk, игнорируя определенный символ?

Я пытаюсь распечатать китайский шрифт, который есть на моем ноутбуке, и отсортировать вывод по названию, которое можно было бы найти в LaTeX, Это можно сделать с помощью следующей команды:

fc-list :lang=zh-cn | awk -F": " '{$1=""; print}' | sort

Находит список шрифтов, затем после первого появления : и один пробел, в котором отображаются названия шрифта. Тогда мы, конечно, сортируем это.

Проблема здесь в том, что есть шрифты, названные как .PingFang SC, который сортируется на самый фронт и не так согласуется с остальными. Есть ли способ сортировки без учета периода?

Возможно, не удастся удалить точку, которая изменит фактическое имя шрифта и, таким образом, затруднит ссылку.

1 ответ

Решение

Попробуйте использовать sort -d("Порядок словаря", который, кажется, игнорирует не-буквенные символы):

$ printf "Orange\n.PingFang\nRed\n" | sort
.PingFang
Orange
Red

$ printf "Orange\n.PingFang\nRed\n" | sort -d
Orange
.PingFang
Red
Другие вопросы по тегам