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

sh/bash/dash/ksh/zsh等Shell脚本
头像
star
帖子: 76
注册时间: 2007-01-16 21:27
来自: 上海
联系:

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

#16

帖子 star » 2008-11-06 10:47

roylez 写了:我只会写loop。

代码: 全选

for i in `cat 文件名`;do cp $i /tmp/$(echo $i|awk -F/ '{print $5}').README; done
这个很好用 呵呵~
_______________________________________
Ubuntu is not my all
But it makes me enjoy all my life
robert.nongyu
帖子: 3
注册时间: 2008-11-04 23:04

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

#17

帖子 robert.nongyu » 2008-11-09 23:49

awk -F"/" 'OFS="." {print $5,"README"}' 现文件名> ~/tmp/目标文件名
头像
bzhao
帖子: 254
注册时间: 2008-07-05 2:15
系统: XUbuntu

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

#18

帖子 bzhao » 2008-11-15 0:25

楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?

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

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

BZ
waynehu
帖子: 48
注册时间: 2008-11-04 17:44

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

#19

帖子 waynehu » 2008-11-15 0:46

bzhao 写了:楼主你的列表里 $ROOTSPARC 是一个在shell里的环境变量吗?

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

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

BZ
$ROOTSPARC 是什么?没有看到哦
还有只要名字那段没有空格,其他地方有空格也没有关系,因为F/表示以/为分割符了
头像
star
帖子: 76
注册时间: 2007-01-16 21:27
来自: 上海
联系:

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

#20

帖子 star » 2008-12-05 14:20

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果然成功了 呵呵~
_______________________________________
Ubuntu is not my all
But it makes me enjoy all my life
prettya1
帖子: 5
注册时间: 2008-03-31 15:58

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

#21

帖子 prettya1 » 2008-12-07 10:05

#!/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
回复