LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: yhzz

请问如何将awk中一个变量的值传递给shell中的变量

[复制链接]
 楼主| 发表于 2003-6-2 08:36:40 | 显示全部楼层
hehe ,这也是个方法,
不过,我的意思
如果我要匹配 haha ,
也就是说,
hahaeeeeeeeee
hahafffffffffffff
ffffhahafffffffffff
...............haha....
等等,那这样也不行啊!
发表于 2003-6-2 11:14:13 | 显示全部楼层
你说的是不是把所有和haha匹配的替换成别的字符串?那么就用sed
sed -n 's/haha/string/pg' filename
 楼主| 发表于 2003-6-2 15:14:22 | 显示全部楼层
据个例子吧!
比如我要得到aaa文件中有haha的文件行数 以及后面的id
aaa如下:
hahadddddddddd       3
ffffffffffffff        4
hhffffhahaeee         5
fffff               6
//end of file

此时我就只有用awk来进行匹配,
awk '/haha/{num++;id[i++]=$2}' aaa
现在如果我要获取num或者 id数组的值就只有通过重定向临时文件
或者最上面的那种方法来完成了。
我想问的是例如num,或id的信息是通过正则表达示的匹配所得到的,如果我不使用awk,sed, 那么仅仅shell脚本能否完成这些工作,或者说,shell除了使用awk,sed 能否进行正则表达使得匹配?
发表于 2003-6-2 15:28:29 | 显示全部楼层
???
你是不是想找出haha这个模式字符所在的行及他的ID?
cat -n aaa|grep 'haha'|awk '{print $1,$3}'
 楼主| 发表于 2003-6-2 19:34:14 | 显示全部楼层
我是想问shell除了使用awk,sed 能否进行正则表达使得匹配?,因为我想对读入的字符串作匹配判断后走不通的分支,做不同的处理,不只是打印。
发表于 2003-6-2 19:55:24 | 显示全部楼层

what do you want to do???;)
 楼主| 发表于 2003-6-2 21:33:57 | 显示全部楼层
haha ,javalee晕了!
如果  不用awk,和sed ,
有没有方法在shell中使用正则表达使匹配
发表于 2003-6-2 23:58:06 | 显示全部楼层
用grep行么?!;)(开玩笑)
对于文件中数据的操作,如果撇开sed,awk,grep这三个功能强大的数据处理工具,我想也是也是可以的,但是,有现成的工具不用,非要跟shell叫劲讷?!关于正则表达式的铁子,请见:
http://www.linuxsir.cn/bbs/showthread.php?threadid=24248
 楼主| 发表于 2003-6-3 00:00:19 | 显示全部楼层
thank you 收到,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表