这个很好用 呵呵~roylez 写了:我只会写loop。代码: 全选
for i in `cat 文件名`;do cp $i /tmp/$(echo $i|awk -F/ '{print $5}').README; done
呼唤shell脚本高人(有关文本处理)
- star
- 帖子: 76
- 注册时间: 2007-01-16 21:27
- 来自: 上海
- 联系:
Re: 呼唤shell脚本高人(有关文本处理)
_______________________________________
Ubuntu is not my all
But it makes me enjoy all my life
Ubuntu is not my all
But it makes me enjoy all my life
-
- 帖子: 3
- 注册时间: 2008-11-04 23:04
Re: 呼唤shell脚本高人(有关文本处理)
awk -F"/" 'OFS="." {print $5,"README"}' 现文件名> ~/tmp/目标文件名
- bzhao
- 帖子: 254
- 注册时间: 2008-07-05 2:15
- 系统: XUbuntu
Re: 呼唤shell脚本高人(有关文本处理)
楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?
如果路径中有空格的情况就不太好搞
路径里没空格, ROOTSPARC是环境变量时, ,二楼的脚本是可以的.
BZ
如果路径中有空格的情况就不太好搞
路径里没空格, ROOTSPARC是环境变量时, ,二楼的脚本是可以的.
BZ
-
- 帖子: 48
- 注册时间: 2008-11-04 17:44
Re: 呼唤shell脚本高人(有关文本处理)
$ROOTSPARC 是什么?没有看到哦bzhao 写了:楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?
如果路径中有空格的情况就不太好搞
路径里没空格, ROOTSPARC是环境变量时, ,二楼的脚本是可以的.
BZ
还有只要名字那段没有空格,其他地方有空格也没有关系,因为F/表示以/为分割符了
- star
- 帖子: 76
- 注册时间: 2007-01-16 21:27
- 来自: 上海
- 联系:
Re: 呼唤shell脚本高人(有关文本处理)
gawk果然成功了 呵呵~bones7456 写了:汗...你早说是 OpenSolaris 嘛,awk是啥版本的?如果不是gawk的话,试试装gawk,应该就可以了.star 写了: 找到一个可能的原因,我现在用的OpenSolaris 里面awk内嵌的system调用没有运行起来
用了一个很WS的方法: awk -F/ '{var="/tmp/"$5".README"; print "cp", $0, var | "/bin/bash"}' result.me 就行了
(如果是print "cp", $0, " /tmp/", $5 , ".README" 的话中间会有空格 ;-( )
_______________________________________
Ubuntu is not my all
But it makes me enjoy all my life
Ubuntu is not my all
But it makes me enjoy all my life
-
- 帖子: 5
- 注册时间: 2008-03-31 15:58
Re: 呼唤shell脚本高人(有关文本处理)
#!/bin/sh
file="a.txt"
while read line;
do
if [[ $line =~ xvm ]];then
destname=${line#/I*Snv/}
destname=${destname%%/SUN*}.README
else
destname=${line#/I*Snv/}
destname=${destname%%/reloc*}.README
fi
echo "destname=$destname"
done <$file
file="a.txt"
while read line;
do
if [[ $line =~ xvm ]];then
destname=${line#/I*Snv/}
destname=${destname%%/SUN*}.README
else
destname=${line#/I*Snv/}
destname=${destname%%/reloc*}.README
fi
echo "destname=$destname"
done <$file