Mos*_*ess 3 string-manipulation filenames macos
我经常在 MacOS X (10.6) 中从网页创建 PDF 文件,并且经常遇到自动建议的文件名(基于网页名称)包含许多特殊字符的问题。
所以我想知道:有没有一种简单的方法(苹果脚本、shell 脚本、OS X 服务),它接受一个字符串(比如这个文件名)并通过
我正在使用 Quicksilver,所以也许可以创建一个命令,它可以用转换后的字符串替换当前文本选择(在文件另存为...对话框中)。
您可以创建一个 Automator 服务来在支持服务的所有应用程序(几乎是所有应用程序)中执行此操作。
打开 Automator 并选择创建一个在任何应用程序中接收选定文本的服务,并选中输出替换选定文本。
从库中添加一个Run Shell Script操作,并粘贴以下脚本代码:
sed 's|[^a-zA-Z0-9]||g'
Run Code Online (Sandbox Code Playgroud)
这个特定的脚本,一个简单的sed替换将从文件名中删除所有非字母数字字符。它a-zA-Z0-9用作允许字符的白名单,根据需要添加。
您也可以执行其他操作,并将它们链接在一起。例如,tr [A-Z] [a-z]将所有内容小写,sed 's|[^a-zA-Z0-9]||g' | tr [A-Z] [a-z]并将两者结合。
另存为例如Sanitize Filename,并可选择在System Preferences » Keyboard » Keyboard Shortcuts » Services 中分配键盘快捷键。您也应该能够使用 Quicksilver 调用服务,只需输入它们的名称即可。
每当您在另存为...或类似对话框中时,选择建议的文件名(默认情况下已选择):

调用服务程序菜单»服务»清理文件名(或使用您调用的键盘快捷键)。它将通过脚本管道文件名,并使用其输出替换选择。

对于标题大小写和删除坏字符(我也保留下划线、点和连字符),以下脚本代码似乎对我最有用:
perl -ane 'foreach $wrd(@F){print ucfirst($wrd)." ";}' | sed 's|[^a-zA-Z0-9_.-]||g'
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
11363 次 |
| 最近记录: |