免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 9500 | 回复: 20
打印 上一主题 下一主题

awk 如何向shell传递参数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-17 17:55 |只看该作者 |倒序浏览
各位大侠,我用awk 读取了几个个字符串变量,如:
awk 'BEGIN{FS="\n"}{str1=$1;str2=$2;str3=$3}‘ a.txt

下面我要在shell里用这几个变量:
sed -e "s/0/(这里就用str1)/g" b.txt > c.txt

请问如何用这几个变量

论坛徽章:
0
2 [报告]
发表于 2003-04-17 18:13 |只看该作者

awk 如何向shell传递参数?

eval `awk '{printf("str1=%s\nstr2=%s\nstr3=%s",$1,$2,$3)}' a.txt`

FS="\n"系什么意思?

论坛徽章:
0
3 [报告]
发表于 2003-04-17 19:00 |只看该作者

awk 如何向shell传递参数?

用回车做分隔符?????????? 恐怕不行吧,因为到\n awk就认为一行中止了。

论坛徽章:
0
4 [报告]
发表于 2003-04-18 10:54 |只看该作者

awk 如何向shell传递参数?

上面写错了一个:FS="*"
这样,怎么向shell传递变量?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-04-18 11:09 |只看该作者

awk 如何向shell传递参数?

多行的命令仅用eval可能会有问题。可以用这个技巧:
echo -e "echo 1\necho 2\necho 3"|sh
上面的echo命令产生一个多行命令,然后用管道交给sh去执行。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-04-18 11:14 |只看该作者

awk 如何向shell传递参数?

用分号";"分隔命令可以避免这个麻烦,使用eval就没有问题了。

论坛徽章:
0
7 [报告]
发表于 2003-04-18 16:41 |只看该作者

awk 如何向shell传递参数?

eval `awk '{printf("str1=%s\nstr2=%s\nstr3=%s",$1,$2,$3)}' a.txt`

这样的用法出错了,下面是我的原句:
eval 'awk 'BEGIN{FS="*"}{str = $1; print str}' a.txt '
提示错误:

awk: cmd. line:1: BEGIN{FS==*}{str=
awk: cmd. line:1:           ^ parse error
awk: cmd. line:2: BEGIN{FS===}{str=
awk: cmd. line:2:                  ^ unexpected newline
bash: print: command not found

请高手指教

论坛徽章:
0
8 [报告]
发表于 2003-04-19 05:54 |只看该作者

awk 如何向shell传递参数?

` not '

why use "eval"??

论坛徽章:
0
9 [报告]
发表于 2003-04-19 15:31 |只看该作者

awk 如何向shell传递参数?

原帖由 "zhanglw" 发表:
evalawk '{printf("str1=%s\nstr2=%s\nstr3=%s",$1,$2,$3)}' a.txt`

这样的用法出错了,下面是我的原句:
eval 'awk 'BEGIN{FS="*"}{str = $1; print str}' a.txt '
提示错误:

awk: cmd. line:1: BEGIN{..........


"`" 注意这个字符了吗?不是单引号'

论坛徽章:
0
10 [报告]
发表于 2003-04-21 15:30 |只看该作者

awk 如何向shell传递参数?

原帖由 "deathcult" 发表:
` not '

why use "eval"??


如果不用eval,参数怎么传递呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP