求助:批量文件重命名,谢谢!(部分解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
sunfish
帖子: 989
注册时间: 2008-05-03 1:53

求助:批量文件重命名,谢谢!(部分解决)

#1

帖子 sunfish » 2013-01-19 16:48

现在有一批中文字体,文件名是中文的,这样子的话在xelatex编译时找不到,其中有些英文名可以,我想将文件名对应换成fc-list中输出的对应字体英文名,如何实现。 :em03 谢谢了
如果有一个两列字符串文件,第一列是不带后缀的文件名,第二列是不带后缀的新文件名,如何批量实现重命名,如:"例子 sample" 文件夹里有"例子.ttf" 重命名为sample.ttf
上次由 sunfish 在 2013-01-21 10:20,总共编辑 1 次。
docker && kubernetes
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 求助:批量字体文件重命名,谢谢!

#2

帖子 YeLee » 2013-01-19 17:18

代码: 全选

fc-scan HanaMinA.ttf |grep family: |sed -n 's/\s*\w*: \("[^"]*"\).*/\1/p'
"HanaMinA"
只会提取,至于怎么处理?嗯,或许可以用for或者find的办法,获取文件名,用dirname的办法获取目录名,然后再重新构造,嗯,这个太繁琐了,还是等高手吧。 :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
ryanbaw
帖子: 12
注册时间: 2012-09-06 15:36
系统: ubuntu 10.04

Re: 求助:批量字体文件重命名,谢谢!

#3

帖子 ryanbaw » 2013-01-20 19:45

嗯,我也在想这个问题,哪位大神教教我
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助:批量字体文件重命名,谢谢!

#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

Re: 求助:批量字体文件重命名,谢谢!

#5

帖子 sunfish » 2013-01-21 10:11

了解了,我刚开始以为是中文名导致的xelatex不能用的,后来自己手动改了一个还是不能调用,看来不是中文名的问题
docker && kubernetes
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

Re: 求助:批量文件重命名,谢谢!(部分解决)

#6

帖子 谢宝良 » 2013-01-21 10:37

编译能否通过跟名字是无关的。
头像
yanyeyy
帖子: 26
注册时间: 2008-10-06 23:04

Re: 求助:批量文件重命名,谢谢!(部分解决)

#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的
回复