分页: 2 / 2

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-11-06 10:47
star
roylez 写了:我只会写loop。

代码: 全选

for i in `cat 文件名`;do cp $i /tmp/$(echo $i|awk -F/ '{print $5}').README; done
这个很好用 呵呵~

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-11-09 23:49
robert.nongyu
awk -F"/" 'OFS="." {print $5,"README"}' 现文件名> ~/tmp/目标文件名

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-11-15 0:25
bzhao
楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?

如果路径中有空格的情况就不太好搞

路径里没空格, ROOTSPARC是环境变量时, ,二楼的脚本是可以的.

BZ

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-11-15 0:46
waynehu
bzhao 写了:楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?

如果路径中有空格的情况就不太好搞

路径里没空格, ROOTSPARC是环境变量时, ,二楼的脚本是可以的.

BZ
$ROOTSPARC 是什么?没有看到哦
还有只要名字那段没有空格,其他地方有空格也没有关系,因为F/表示以/为分割符了

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-12-05 14:20
star
bones7456 写了:
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" 的话中间会有空格 ;-( )
汗...你早说是 OpenSolaris 嘛,awk是啥版本的?如果不是gawk的话,试试装gawk,应该就可以了.
gawk果然成功了 呵呵~

Re: 呼唤shell脚本高人(有关文本处理)

发表于 : 2008-12-07 10:05
prettya1
#!/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