Як я можу сортувати результат awk, не зважаючи на певний символ?


1

Я намагаюся роздрукувати китайський шрифт, який я маю на своєму ноутбуці, і сортую вихід відповідно до їх імені, на яке можна було б посилатися LaTeX. Це можна зробити за допомогою наступної команди:

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

Він знаходить список шрифтів, потім після першого появи :та єдиного пробілу, де і з’являються назви шрифту. Тоді ми, звичайно, сортуємо це.

Проблема тут, однак, є шрифти з назвою like .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

Це працює! Дуже дякую! Чи є у вас ідеї щодо пустого виводу, отриманого додатковим простором?
zyy

Вибачте, але я не розумію, що ви говорите. Чи можете ви відредагувати своє запитання, щоб показати кілька прикладів вашого вкладу (тобто результатів fc-list) та результатів?
Скотт

Я бачу, в чому проблема, додатковий простір отриманий з команди $1="". Зараз все добре, дякую!
zyy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.