我有一個超過7000行字體名稱的文本文件,這是我們設計部門需要的。此列表是由軟件生成的,該軟件刪除了任何文件擴展名。有些文件確實沒有擴展名。Bash引用txt列表來查找目錄中的數據和複製項目
這個「fontList.txt」需要通過腳本讀取並引用一個文件夾,該文件夾將包含許多子目錄,其中包含數以萬計的字體文件。原始文件將在適當情況下具有文件擴展名。
挑戰在於源列表中沒有文件擴展名,但是字體存在版本差異,因此較早的類型1變體可能是「香蕉」和新的打開類型「Banana.otf」。這兩個版本可能都是必需的,但源列表只會引用「香蕉」,所以腳本需要找到兩者。
在Mac OS 10.8,在命令行交互運行這個我需要修改以下工作:
sourceList="/Users/"$useris"/Desktop/fontList.txt"
sourceDir="/Users/Shared/DesignFonts"
cat "$sourceList" |
while read FONTPATH
do
echo font from source list to find and copy is "${FONTPATH}" | tee -a "$logPath"
find "$sourceDir" -type f -name "${FONTPATH}" -exec cp -vf {} /Users/"$useris"/Desktop/fontPot/ \;
done
的echo
聲明純粹是爲了確認的目的。
目前,該腳本工作,但不會引用字體文件,其中有文件擴展名sourceDir
,像.otf .ttf
。
爲了澄清,該sourceList
樣子:
馬里昂
MetaNorCap
MetaNorCapExp
MinionPro粗體
儘管sourceDir
內容類似於:
Marion.ttc
MesquiteStd.otf
MetaNorCap
MetaNorCapExp
微軟
Microsoft無Serif.ttf
MinionPro-Bold.otf
注:
「微軟」 上面是一個目錄。
這些是來自更大的A-Z列表的示例列表。
如果'Helvetica'和'Helvetica.otf'在不同的目錄下怎麼辦? – user495470 2013-05-08 14:09:52