![如何使用 fontconfig 的 fc-scan 实用程序在命令行上获取适合我的系统语言的字体信息(ttf、otf)?](https://linux22.com/image/1172487/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20fontconfig%20%E7%9A%84%20fc-scan%20%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8A%E8%8E%B7%E5%8F%96%E9%80%82%E5%90%88%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AF%AD%E8%A8%80%E7%9A%84%E5%AD%97%E4%BD%93%E4%BF%A1%E6%81%AF%EF%BC%88ttf%E3%80%81otf%EF%BC%89%EF%BC%9F.png)
我想要获取有关字体(ttf 或 otf)的信息,例如字体名称和样式。
如果可能的话,我不想安装额外的软件,比如otfinfo
。由于fontconfig
到处都安装了,一个不错的选择似乎是
fc-scan --format "%{family} %{style}\n" font.ttf
然而,输出是
Bookman Old Style Cursiva,kurzíva,kursiv,Πλάγια,Italic,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,Kursywa,Itálico,Курсив,İtalik,Poševno,Etzana
样式包含字体支持的所有不同语言。我如何将输出限制为fc-scan
系统语言或英语?
期望的输出将是Bookman Old Style Italic
上述的情况。
答案1
要获取系统语言的字体信息,请使用
fc-scan --format "%{fullname[$(( $(sed -E 's/^(.*)en.*/\1/;s/[^,]//g' <<<"$(fc-scan --format "%{fullnamelang}\n" /mnt/Fonts/bookosb.ttf)" | wc -c) -1 ))]}\n" /mnt/Fonts/bookosb.ttf