分页: 1 / 1

请教一脚本问题

发表于 : 2009-10-28 18:49
dblinksoft
请教大侠,我现在想实现一个功能:
将以文件a.txt中的第一列命名的文件改为文件a.txt第二列的名字(两个字段间有三个空格)。a.txt如格式:
090145 0931
090146 0928
090147 0931
090148 0930
090149 0928

现在要将090145.jpg改为名0931.jpg,090146.jpg改名为0928.jpg。。。以此类推。不知如何实现?请大侠们赐教,谢谢。

Re: 请教一脚本问题

发表于 : 2009-10-28 18:59
yaoms

代码: 全选

awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt

Re: 请教一脚本问题

发表于 : 2009-10-28 18:59
O_O_BOT
irc <fvw> say: sed 's/\(.*\) \(.*\)/mv \1.jpg \2.jpg/g'

Re: 请教一脚本问题

发表于 : 2009-10-28 19:02
O_O_BOT
irc <fvw> say: awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt

Re: 请教一脚本问题

发表于 : 2009-10-28 19:14
cnkilior

代码: 全选

#!/usr/bin/perl -w

while (<>){
     ($from $to)=split /\s+/,$_;
    system "mv $from $to";
}

Re: 请教一脚本问题

发表于 : 2009-10-28 19:22
dblinksoft
yaoms 写了:

代码: 全选

awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt

谢谢,这个方法不错

Re: 请教一脚本问题

发表于 : 2009-10-29 0:05
xzap
yaoms 写了:

代码: 全选

awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt
学习了,原来awk还可以这样用

Re: 请教一脚本问题

发表于 : 2009-10-30 22:46
aerofox
再补充两种方法:

代码: 全选

while read old new; do mv $old.jpg $new.jpg; done < a.txt
sed 's/[[:digit:]]\+/&.jpg/g' a.txt | xargs -n 2 mv

Re: 请教一脚本问题

发表于 : 2009-11-08 21:05
tusooa

代码: 全选

cat "<FILE>" | while read line; do
    arg[0]=$(echo $line | awk '{print $1}')
    arg[1]=$(echo $line | awk '{print $2}')
    mv -v ${arg[0]}.jpg ${arg[1]}.jpg
done