请问这个脚本如何写

sh/bash/dash/ksh/zsh等Shell脚本
回复
jeffwang66
帖子: 2
注册时间: 2009-07-23 12:16

请问这个脚本如何写

#1

帖子 jeffwang66 » 2009-07-24 12:53

比如说我有一个文件,名字叫 02_In_My_Place.mp3, 我想用sed语句,将头几个数字(肯能不止两位,但是连续的)提取出来,余下来的信息空格代替下划线(不要后缀),请问这个脚本如何去实现?

这个例子具体输出如下:

第一个输出 : 02
第二个输出 : In My Place

谢谢~~
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 请问这个脚本如何写

#2

帖子 HuntXu » 2009-07-24 13:56

代码: 全选

[hunt@psycho ~]$ O_< echo 02_In_My_Place.mp3|sed -r 's/([0-9]{2,})_/\1\n/;s/_/ /g;s/\..*?$//g'
02
In My Place
HUNT Unfortunately No Talent...
gucm
帖子: 1
注册时间: 2009-07-27 0:11

Re: 请问这个脚本如何写

#3

帖子 gucm » 2009-07-27 0:13

echo $1 |cut -f 1 -d '.'|sed 's/_/ /g'|read aa bb
echo $aa
echo $bb
coldweb
帖子: 45
注册时间: 2008-03-22 1:19
联系:

Re: 请问这个脚本如何写

#4

帖子 coldweb » 2009-07-29 15:49

楼主你看是不是这样:
例:
a="02_in_my_place"
b=`echo $a | cut -f1 -d"_"`
c=`echo $a | cut -f2,3,4 -d"_" | sed 's/_/ /g'`
echo $b
echo $c
如果你是要做循环的话:
while read line
do
b=`echo $line | cut -f1 -d"_"`
c=`echo $line | cut -f2,3,4 -d"_" | sed 's/_/ /g'`
echo $b
echo $c
done<filename.list
其中所有名字都放在filename.list里面。
回复