由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - awk问题求救
相关主题
请问一个awk的问题今天拿到了atom editor的测试邀请
idb problem (转载)弱问:GDB怎样停在出错的语句上(行号也行)
神一般的awk【包子】请教算法--2列数字比较
小白问:awk里面引用变量为啥有的加'$'有的不加?how to count a pattern in vi?
gdb cann't display variable valuehow to remove condition for a breakpoint in gdb?
Shell 求助a sed question
我用vi是不是out了Grep 能作这个吗?
码工码农,帮忙了! (转载)how to begin kernel development step by step?
相关话题的讨论汇总
话题: testvar话题: awk话题: length话题: initlen话题: print
进入Linux版参与讨论
1 (共1页)
xt
发帖数: 17532
1
今天恶补awk,写了这么个小程序
#!/bin/awk -f
BEGIN {
}
{
print "initLen=", length(testvar), "\n"
testvar[length(testvar) + 1]=1
testvar[length(testvar) + 2]=2
for (i = 1; i <= length(testvar); ++i) {
print "testvar[", i, "]=", testvar[i], "\n"
}
}
结果:
awk: test2.awk: line 7: illegal reference to variable testvar
awk: test2.awk: line 8: illegal reference to variable testvar
awk: test2.awk: line 10: illegal reference to variable testvar
请问为什么出错?
l*******G
发帖数: 1191
2
testvar is dynamic, did you allocate memory?
xt
发帖数: 17532
3
解释语言还要先给内存啊?

【在 l*******G 的大作中提到】
: testvar is dynamic, did you allocate memory?
l****g
发帖数: 122
4
testvar如何定义的?如何知道它是array?
稍加改动就可以跑,看看你就知道为什么你的不可以了-
#!/bin/awk -f
BEGIN {
}
{
split($0, testvar)
print "initLen=", length(testvar), "\n"
testvar[length(testvar) + 1]=1
testvar[length(testvar) + 2]=2
for (i = 1; i <= length(testvar); ++i) {
print "testvar[", i, "]=", testvar[i], "\n"
}
}
~/work/shell $ echo "1 2 3" | awk -f xx6.awk
initLen= 3
testvar[ 1 ]= 1
testvar[ 2 ]= 2
testvar[ 3 ]= 3
testvar[ 4 ]= 1
testvar[ 5 ]=
testvar[ 6 ]= 2
xt
发帖数: 17532
5
是这样:我没有看到awk在什么地方可以declare数据类型,但是
我想把一个文件直接用awk读入,然后split再处理,就是用那个
-F选项。当然我知道也可以用cat导入,但是这样是不是就失去
了原有的行号?因为文件头要单独处理。

【在 l****g 的大作中提到】
: testvar如何定义的?如何知道它是array?
: 稍加改动就可以跑,看看你就知道为什么你的不可以了-
: #!/bin/awk -f
: BEGIN {
: }
: {
: split($0, testvar)
: print "initLen=", length(testvar), "\n"
: testvar[length(testvar) + 1]=1
: testvar[length(testvar) + 2]=2

1 (共1页)
进入Linux版参与讨论
相关主题
how to begin kernel development step by step?gdb cann't display variable value
一个头痛的regular expression问题Shell 求助
求助文件切割问题我用vi是不是out了
Screen session 保持 environment variables码工码农,帮忙了! (转载)
请问一个awk的问题今天拿到了atom editor的测试邀请
idb problem (转载)弱问:GDB怎样停在出错的语句上(行号也行)
神一般的awk【包子】请教算法--2列数字比较
小白问:awk里面引用变量为啥有的加'$'有的不加?how to count a pattern in vi?
相关话题的讨论汇总
话题: testvar话题: awk话题: length话题: initlen话题: print