当前位置:  技术问答>linux和unix

awk里面的for循环的疑问

    来源: 互联网  发布时间:2017-04-01

    本文导语:  有awk脚本如下: #!/bin/awk -f #Filename : arraytest.awk # prints out an array  BEGIN { record = "123#456#78"; split(record,myarray,"#") } END { for (i in myarray) print myarray[i] } 测试时使用: array_test.awk /dev/null 发现输出正常结果: 123...

有awk脚本如下:

#!/bin/awk -f

#Filename : arraytest.awk
# prints out an array 

BEGIN {
record = "123#456#78";
split(record,myarray,"#")
}
END {
for (i in myarray)
print myarray[i]
}

测试时使用: array_test.awk /dev/null
发现输出正常结果:
123
456
78

但是,如果去掉上面的END,却是没有输出的。即:
BEGIN {
record = "123#456#78";
split(record,myarray,"#")
}
{
for (i in myarray)
print myarray[i]
}

另外,如果语句写完后,不在最后面加入换行,执行脚本时会一直出错。

还请各位高手,大侠不吝赐教 !!

|
1. 但是,如果去掉上面的END,却是没有输出的。即:
awk按行处理输入
array_test.awk /dev/null
没有输入行,所以
{
for (i in myarray)
print myarray[i]
}
是不会执行的!

2. 另外,如果语句写完后,不在最后面加入换行,执行脚本时会一直出错。
Linux下文本文件最好的最后加上换行符。否则有些软件会出错
比如gcc编译没有结尾换行符的.c文件会给个警告!
其中的原因我也不是特别清楚,记着加个换行符就好了,如果用vi/vim编译的话,会自动加一个换行符的。

|
这回答也算好?

awk 中 END的作用,楼主自己好好查查,这是基础
换行符什么的,从来没听过有这种问题。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • awk里可以嵌套awk吗?
  • 怎样让awk输出到中途退出awk?
  • 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
  • 运行awk脚本文件碰到:-bash:student_tot.awk:command not found
  • 关于awk提取文本时的一个输出结果显示问题
  • awk能改变变量的值么?
  • 关于awk的一点问题
  • awk程序中使用shell的变量
  • 新手请教一段AWK代码,报错。
  • awk如何删除一个文件?
  • shell 以及 awk高手来帮我解决这个问题,谢谢
  • awk在shell script中
  • awk 匹配字符串
  • awk 引用的问题
  • awk参数中文件名是变量的情况
  • awk中如何带入变量
  • shell awk之后对某一列进行求和
  • AWK
  • awk中如何读取shell变量?
  • 用awk如何在当前目录下所有文件中搜索字符串


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,