死的简单。
如何重命名
05_h.png
06_h.png
至
05_half.png
06_half.png
至少,我认为这很简单,但很难对谷歌这种事情,除非你已经知道了。
谢谢....
死的简单。
如何重命名
05_h.png
06_h.png
至
05_half.png
06_half.png
至少,我认为这很简单,但很难对谷歌这种事情,除非你已经知道了。
谢谢....
只需使用bash,不需要调用外部命令。
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
不要添加#!/bin/sh
对于那些需要一个班轮:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
尝试rename
命令:
rename 's/_h.png/_half.png/' *.png
更新:
用法示例:
创建一些内容
$ mkdir /tmp/foo
$ cd /tmp/foo
$ touch one_h.png two_h.png three_h.png
$ ls
one_h.png three_h.png two_h.png
测试解决方案:
$ rename 's/_h.png/_half.png/' *.png
$ ls
one_half.png three_half.png two_half.png
for f in *.png; do
fnew=`echo $f | sed 's/_h.png/_half.png/'`
mv $f $fnew
done
您是否在寻找一个纯bash的解决方案吗? 有许多方法,但这里的一个。
for file in *_h.png ; do mv "$file" "${file%%_h.png}_half.png" ; done
这假设在当前目录中,在结束文件只有_h.png
是要重命名的人。
更具体
for file in 0{5..6}_h.png ; do mv "$file" "${file/_h./_half.}" ; done
假设这两个例子是你的唯一。 文件。
对于一般的情况下,重命名文件中已 被 覆盖 前 。
使用rename
perl写的效用。 可能是因为它是默认不可用,但...
$ touch 0{5..6}_h.png
$ ls
05_h.png 06_h.png
$ rename 's/h/half/' *.png
$ ls
05_half.png 06_half.png
我有一个类似的问题:在手册中,它描述重命名为
rename [option] expression replacement file
这样你就可以以这种方式使用它
rename _h _half *.png
在代码:“_H”是你正在寻找的表达。 “_half”就是你要替换的模式。 “* .PNG”是一个文件,你正在寻找的可能的目标文件的范围。
希望这可以帮助C:
for i in *_h.png ; do
mv $i `echo "$i"|awk -F'.' '{print $1"alf."$2}'`
done
另一种方法可以使用批量重命名的选项手动
右键点击文件 - >文件自定义命令 - >批量重命名,你可以更换小时。 半。
这将使用的WinSCP等,为基于Linux GUI工作
使用rename
工具:
rc@bvm3:/tmp/foo $ touch 05_h.png 06_h.png
rc@bvm3:/tmp/foo $ rename 's/_h/_half/' *
rc@bvm3:/tmp/foo $ ls -l
total 0
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 05_half.png
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 06_half.png
一个内胆:
for file in *.php ; do mv "$file" "_$file" ; done