文件改名的脚本[原创]

君琴共舞 13:54:14
01000000_NoName_0910084001.log

01000000_NoName_0910085502.log

01000000_NoName_0910090501.log

01000000_NoName_0910092001.log

01000000_NoName_0910093001.log

我要把以上文件的“01000000_NoName”都更换成“0034768890_xy3”,
而后面的“_0910082502.log”都还是和原来文件的一样,不变化,
使用rename命令该怎么改?

��炮�c玫瑰 13:57:32
01000000_NoName_0910093001.log 变成 0034768890_xy3_0910093001.log
君琴共舞 14:19:14
有结果了,
rename 01000000_NoName 0034768890_xy3 01000000_NoName_*

男人了一下rename命令发现 rename .htm .html *.htm 的示例很方便,不过脚本已写好了

我写的脚本如下
#!/bin/bash

#01000000_NoName_0910093001.log to 0034768890_xy3_0910093001.log

SrcHead="01000000_NoName"
DestHead="0034768890_xy3"

for f in ${SrcHead}_*.log
do
    echo "file = $f"
    #echo $f|awk '{print length($0)}' #显示一长度
    tail_name=`echo $f|awk '{print substr($0, 17)}'`
     #不知道substr如何引用${SrcHead} 要不然更智能一点
    echo "$tail_name"
    new_file="${DestHead}_${tail_name}"
    echo "mv ${f} to ${new_file}"
    #mv ${f} ${new_file}
done
还有length()可用, gsub()非行替换
http://hi.baidu.com/3444542/blog/item/e5ab86d8a735293333fa1cd7.html
顺便把前两天图片改名的脚本也弄上来,之前一下想不起张乐在sir上贴的那个文件改名的脚本了,
Sir上不去还是自己写一个吧
#===============================================================================
SrcExt="png"
DestExt="jpg"
for i in *.${SrcExt} #查找后缀名为 .png的图片文件
do
    base_name=`basename $i .${SrcExt}` #这个特有用 直接得到文件去除后缀的文件名
    echo "base_name = ${base_name}"
    mv ${i}   ${base_name}.${DestExt} #直接改就得了
done

你可能感兴趣的:(#脚本收集区)