使用Applescript或Linux从filename中删除字符串

时间:2013-12-16 19:52:11

标签: linux pdf ms-word applescript filenames

我正在将几个word文档转换为pdfs。输入文件名是这样的“CM_Genetics_in_OBGYN_docx”,而输出文件名是这样的“job_10-Microsoft_Word _-_ CM_Genetics_in_OBGYN_docx.pdf”我想删除“job_10-Microsoft_Word _-_”和“_docx”并且只剩下pdf文件名“CM_Genetics_in_OBGYN.pdf”。我真的想最终得到“OBGYN.pdf中的CM Genetics”,但如果最后一部分太复杂,那么“CM_Genetics_in_OBGYN.pdf”是可以接受的。我对applecript和linux命令有一些经验,但不能说明这一点。

1 个答案:

答案 0 :(得分:1)

你走了:

for fn in job_*.pdf; do
    newname=${fn#job_??-*-_}
    newname=${newname/_docx}
    newname=${newname//_/ }
    echo "mv '$fn' '$newname'"
done

这将打印mv命令就绪执行,但不重命名任何内容。要执行重命名,只需将输出传递给sh

echo对于安全地测试所有内容非常有用。确保检查可以找到的最奇怪的图案,以涵盖所有角落的情况。如果一切正常,请更改echo以执行您想要执行的实际操作,例如:

for fn in job_*.pdf; do
    newname=${fn#job_??-*-_}
    newname=${newname/_docx}
    newname=${newname//_/ }
    mv "$fn" "/some/other/dir/$newname"
done