请教一脚本问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
dblinksoft
帖子: 2
注册时间: 2009-10-28 18:46

请教一脚本问题

#1

帖子 dblinksoft » 2009-10-28 18:49

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

现在要将090145.jpg改为名0931.jpg,090146.jpg改名为0928.jpg。。。以此类推。不知如何实现?请大侠们赐教,谢谢。
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

Re: 请教一脚本问题

#2

帖子 yaoms » 2009-10-28 18:59

代码: 全选

awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: 请教一脚本问题

#3

帖子 O_O_BOT » 2009-10-28 18:59

irc <fvw> say: sed 's/\(.*\) \(.*\)/mv \1.jpg \2.jpg/g'
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: 请教一脚本问题

#4

帖子 O_O_BOT » 2009-10-28 19:02

irc <fvw> say: awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 请教一脚本问题

#5

帖子 cnkilior » 2009-10-28 19:14

代码: 全选

#!/usr/bin/perl -w

while (<>){
     ($from $to)=split /\s+/,$_;
    system "mv $from $to";
}
dblinksoft
帖子: 2
注册时间: 2009-10-28 18:46

Re: 请教一脚本问题

#6

帖子 dblinksoft » 2009-10-28 19:22

yaoms 写了:

代码: 全选

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

谢谢,这个方法不错
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 请教一脚本问题

#7

帖子 xzap » 2009-10-29 0:05

yaoms 写了:

代码: 全选

awk '{system("mv -v "$1".jpg "$2".jpg")}' a.txt
学习了,原来awk还可以这样用
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 请教一脚本问题

#8

帖子 aerofox » 2009-10-30 22:46

再补充两种方法:

代码: 全选

while read old new; do mv $old.jpg $new.jpg; done < a.txt
sed 's/[[:digit:]]\+/&.jpg/g' a.txt | xargs -n 2 mv
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 请教一脚本问题

#9

帖子 tusooa » 2009-11-08 21:05

代码: 全选

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

代码: 全选

] ls -ld //
回复