免费注册 查看新帖 |

Chinaunix

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

在awk中用变量指定域的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-06 15:17 |只看该作者 |倒序浏览
我在man awk中看到这样的例子:
n=5
awk '{print $n}' testfile
想打印第5域,但是我试验了一下,会把所有域打印出来

请问怎样在awk中用变量指定域?

论坛徽章:
0
2 [报告]
发表于 2003-06-06 15:20 |只看该作者

在awk中用变量指定域的问题

需要指定分隔符
n=5
awk -F "|" -v dd=$n '{print $dd}'  testfile

论坛徽章:
0
3 [报告]
发表于 2003-06-06 15:36 |只看该作者

在awk中用变量指定域的问题

  1. n=3;awk '{print $"'${n}'"}'  <infile >outfile
复制代码

论坛徽章:
0
4 [报告]
发表于 2003-06-06 15:38 |只看该作者

在awk中用变量指定域的问题

  1. n=3;awk '{print $"'${n}'"}' <infile >outfile
复制代码
   
怎么回事?又重了!

论坛徽章:
0
5 [报告]
发表于 2003-06-07 21:00 |只看该作者

在awk中用变量指定域的问题

可以了
谢谢~~

论坛徽章:
0
6 [报告]
发表于 2003-06-08 10:54 |只看该作者

在awk中用变量指定域的问题

[quote]原帖由 "muzx"][/quote 发表:
     
不明白为什么要那么写,给解释一下好不好~~~呵呵~~

论坛徽章:
0
7 [报告]
发表于 2003-06-08 18:59 |只看该作者

在awk中用变量指定域的问题

原帖由 "anonimousboy" 发表:
   
不明白为什么要那么写,给解释一下好不好~~~呵呵~~
   

' ....   $ " '$n' " ..... '

awk 就是这么约定的,表示引用 shell 变量,。。。
在红的范围内用的是 awk 变量,$n 在两个引号对之外,用的是 shell 变量。

论坛徽章:
0
8 [报告]
发表于 2003-06-09 07:53 |只看该作者

在awk中用变量指定域的问题

原帖由 "红袖添香" 发表:
awk 就是这么约定的,表示引用 shell 变量,。。。
在红的范围内用的是 awk 变量,$n 在两个引号对之外,用的是 shell 变量。
   
原来如此啊,可是我手头的资料里都没有这规定,我昨天去买书,找了一天三个书店就两本书,而且都一样的,还不如我在网上找的好,大连这地方..............谢谢红袖J指点,除了MUZX给发的那些资料外,那里还有关于这方面的比较全面的资料啊?

论坛徽章:
0
9 [报告]
发表于 2014-02-19 15:10 |只看该作者
回复 8# anonimousboy


    mark~!

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
10 [报告]
发表于 2014-02-19 15:22 |只看该作者
本帖最后由 jason680 于 2014-02-19 15:26 编辑

@anonimousboy@红袖添香

it doesn't matter with awk that just shell function


$ n=5

$ echo 'test n=$n          # something wrong'
test n=$n          # something wrong

$ echo 'test n='$n'        # It's OK, but not good idea for awk'
test n=5        # It's OK, but not good idea for awk

$ echo a b c d e d f g | awk -vn=$n '{print $n}'
e

Note: $n for shell script variable
n and $n for awk script variable

>>那里还有关于这方面的比较全面的资料啊?
study basic shell skill with Shell基础二十篇 and Shell十三问 in shell forum
http://bbs.chinaunix.net/forum-24-1.html

Shell版新手导航    Shell基础二十篇    Shell十三问    Shell综合水平测试    Linux相关书籍    Shell版精华帖合集    Shell索引树


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP