我会知道是否有一个程序或脚本可以将文件名中的分隔单词与点(或其他标点符号)链接起来。例:你好吗.pdf>>>你好吗.pdf
我没有很好地解释自己,我正在寻找一个可以重命名文件名的 bash 脚本<</p>
假设您在变量中有How are you.pdf
,您可以使用参数扩展:
% a="How are you.pdf"
% echo "${a// /.}"
How.are.you.pdf
以上是一个 bash 扩展,在 POSIX 外壳中不起作用。在这种情况下,将需要sed
或模拟。
重命名当前目录中的所有文件:
for a in *; do
[ -f "$a" ] || continue
mv -- "$a" "${a// /.}"
done
sed 是您在这里的帮助。
例如:
echo "How are you.pdf" | sed 's/ /./g'
sed
命令分为command/1st argument/2nd argument/command
在我们的示例中:
s - 搜索
[空格] - 空格字符
. - 点字符到 取代
g - 全局执行此操作,而不仅仅是第一次出现
有一个名为perl-rename
有时称为rename
的工具 - 不要与util-linux的rename
混淆。
此工具采用 Perl 表达式并相应地重命名:
perl-rename 's/ /./g' *
以上将重命名当前目录中的所有文件/目录,以添加句点的替换空格:
How are you.pdf -> How.are.you.pdf
This is another.file -> This.is.another.file
您可以在线试用正则表达式