如何批修改文件名,以及如何每两行数字相加

sh/bash/dash/ksh/zsh等Shell脚本
回复
esolve
帖子: 210
注册时间: 2010-05-08 4:52

如何批修改文件名,以及如何每两行数字相加

#1

帖子 esolve » 2011-01-24 22:07

我一个文件夹里有很多文件
格式如
m2_rec_plr30_r1.wav
m2_rec_plr140_r2.wav

现在要将下划线 _ 之后所有的 r1 r2改为 s1 s2
也就是变成
m2_rec_plr30_s1.wav
m2_rec_plr140_s2.wav

如何进行啊

另外有一些文件
里面是数字
诸如

1 2
3 4
1.2 1.6
2.4 1.8
.。。。
。。。。

想要每隔两行就相加然后除以2
也就是第一行和第二行各列相加然后除以2
第三行和第四行各列相加然后除以2
以此类推

上面的就变为
2 3
1.8 1.7
.。。。
。。。


谢谢
头像
astolia
论坛版主
帖子: 6445
注册时间: 2008-09-18 13:11

Re: 如何批修改文件名,以及如何每两行数字相加

#2

帖子 astolia » 2011-01-25 1:58

各用一行代码

代码: 全选

rename 's/_r(\d)./_s$1./' *
xargs -n4 < filename | awk '{print ($1+$3)/2" "($2+$4)/2}'
esolve
帖子: 210
注册时间: 2010-05-08 4:52

Re: 如何批修改文件名,以及如何每两行数字相加

#3

帖子 esolve » 2011-01-25 7:37

只有第一二三四行啊?
后面还有很多行呢。。。
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 如何批修改文件名,以及如何每两行数字相加

#4

帖子 tusooa » 2011-01-25 10:09

esolve 写了:只有第一二三四行啊?
后面还有很多行呢。。。
xargs -n4 意思是,每4行并为1行,每一行之间用空格分开。
$1 $2 $3 $4对应第多少列,不是行。

代码: 全选

] ls -ld //
头像
astolia
论坛版主
帖子: 6445
注册时间: 2008-09-18 13:11

Re: 如何批修改文件名,以及如何每两行数字相加

#5

帖子 astolia » 2011-01-25 16:10

tusooa 写了:
esolve 写了:只有第一二三四行啊?
后面还有很多行呢。。。
xargs -n4 意思是,每4行并为1行,每一行之间用空格分开。
$1 $2 $3 $4对应第多少列,不是行。
非也非也,xargs -n4是将每四个参数放在一行,在他的例子中,每行有两个参数
esolve
帖子: 210
注册时间: 2010-05-08 4:52

Re: 如何批修改文件名,以及如何每两行数字相加

#6

帖子 esolve » 2011-01-26 2:49

astolia 写了:各用一行代码

代码: 全选

rename 's/_r(\d)./_s$1./' *



为何 (\d) 写成 \(\d\)就不行,另外这个\d是什么意思?
谢谢
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 如何批修改文件名,以及如何每两行数字相加

#7

帖子 tusooa » 2011-01-27 9:53

esolve 写了:
astolia 写了:各用一行代码

代码: 全选

rename 's/_r(\d)./_s$1./' *



为何 (\d) 写成 \(\d\)就不行,另外这个\d是什么意思?
谢谢
晦涩的转义,要它干吗? :em04
prename本来就是perl的。不用像sed那样干吗都\ 了。
alias sed='sed -r'

\d就是匹配数字

代码: 全选

] ls -ld //
头像
大宝
帖子: 3050
注册时间: 2008-06-30 22:32
联系:

Re: 如何批修改文件名,以及如何每两行数字相加

#8

帖子 大宝 » 2011-01-27 10:15

代码: 全选

sudo apt-get install pyrenamer
头像
icmmed
帖子: 46
注册时间: 2010-12-03 11:08

Re: 如何批修改文件名,以及如何每两行数字相加

#9

帖子 icmmed » 2011-01-27 14:04

mark一下
我喜欢忙一点...
Lost Temple...
回复