sh/bash/dash/ksh/zsh等Shell脚本
-
sunfish
- 帖子: 989
- 注册时间: 2008-05-03 1:53
#1
帖子
由 sunfish » 2013-01-19 16:48
现在有一批中文字体,文件名是中文的,这样子的话在xelatex编译时找不到,其中有些英文名可以,我想将文件名对应换成fc-list中输出的对应字体英文名,如何实现。

谢谢了
如果有一个两列字符串文件,第一列是不带后缀的文件名,第二列是不带后缀的新文件名,如何批量实现重命名,如:"例子 sample" 文件夹里有"例子.ttf" 重命名为sample.ttf
上次由
sunfish 在 2013-01-21 10:20,总共编辑 1 次。
docker && kubernetes
-
YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
-
联系:
#2
帖子
由 YeLee » 2013-01-19 17:18
代码: 全选
fc-scan HanaMinA.ttf |grep family: |sed -n 's/\s*\w*: \("[^"]*"\).*/\1/p'
"HanaMinA"
只会提取,至于怎么处理?嗯,或许可以用for或者find的办法,获取文件名,用dirname的办法获取目录名,然后再重新构造,嗯,这个太繁琐了,还是等高手吧。

-
ryanbaw
- 帖子: 12
- 注册时间: 2012-09-06 15:36
- 系统: ubuntu 10.04
#3
帖子
由 ryanbaw » 2013-01-20 19:45
嗯,我也在想这个问题,哪位大神教教我
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#4
帖子
由 eexpress » 2013-01-21 8:58
● type fc-zh
fc-zh 是 `fc-list :lang=zh-cn|sed s/:.*//' 的别名
列出来,最后通常有英文名的啊。为什么要改。
改字体名称,需要fontforge,不是改文件名的事情。
● 鸣学
-
sunfish
- 帖子: 989
- 注册时间: 2008-05-03 1:53
#5
帖子
由 sunfish » 2013-01-21 10:11
了解了,我刚开始以为是中文名导致的xelatex不能用的,后来自己手动改了一个还是不能调用,看来不是中文名的问题
docker && kubernetes
-
谢宝良
- 帖子: 1983
- 注册时间: 2010-05-01 21:23
#6
帖子
由 谢宝良 » 2013-01-21 10:37
编译能否通过跟名字是无关的。
-
yanyeyy
- 帖子: 26
- 注册时间: 2008-10-06 23:04
#7
帖子
由 yanyeyy » 2013-01-22 11:37
代码: 全选
#!/usr/bin/python
#encoding=utf-8
import os
#字体目录
font_dir='/tmp/fonts'
#列表文件
list_file='/tmp/list'
name_dict={}
os.chdir(font_dir)
name_file=open(list_file)
for line in name_file:
name=line.split()
name_dict[name[0]]=name[1]
oldnames=[i for i in os.listdir(font_dir)]
for old in oldnames:
if name_dict.has_key(old[:-4]):
print 'rename '+old+' ---> '+name_dict[old[:-4]]+'.ttf'
os.rename(old,name_dict[old[:-4]]+'.ttf')
python的