当前位置: 技术问答>linux和unix
solaris 批量改文件名
来源: 互联网 发布时间:2016-07-21
本文导语: 本帖最后由 lad1984 于 2009-12-11 09:22:56 编辑 如题, solaris和unix很多命令都是通用的,我看了网上一个命令的用法,不是很理解,希望高手指导 $ for f in filelist ... ; do mv $f ${f/fromtext/totext} ; done 我想把c2t0d0s0 c2t0d0s1...
$ for f in filelist ... ; do mv $f ${f/fromtext/totext} ; done
我想把c2t0d0s0 c2t0d0s1 c2t0d0s2 三个文件改为c1t0d0s0 c1t0d0s1 c1t0d0s2
请问如何实现,上面的命令解释不是很明白,最好能说明下.
有朋友写了下面的代码,本人还是看不懂.
for f in c2t0d0s0 c2t0d0s1 c2t0d0s2
do
f2=`echo $f|sed "s/c2/c1/g"` //用sed把f中的c2替换成c1,存在f2
#echo $f2
mv $f $f2 //改名
done
我不明白"s/c2/c1/g"
这个是什么意思
|
那段代码就是我写的,
sed "s/c2/c1/g"中s选项表示替换,/c2/,/c1/是两个模式,g表示全部替换,就是把输入串中c2全替换成c1
LZ如果还不清楚的话,google一下sed和正则表达式
sed "s/c2/c1/g"中s选项表示替换,/c2/,/c1/是两个模式,g表示全部替换,就是把输入串中c2全替换成c1
LZ如果还不清楚的话,google一下sed和正则表达式
|
"s/c2/c1/g"是sed的正则,把输入的字符串中的所有c2都替换成c1。
你自己试下就知道了。
你自己试下就知道了。