由买买提看人间百态

topics

全部话题 - 话题: testvar
(共0页)
l****g
发帖数: 122
1
来自主题: Linux版 - awk问题求救
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
2
来自主题: Linux版 - awk问题求救
今天恶补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
请问为什么出错?
xt
发帖数: 17532
3
来自主题: Unix版 - awk问题求救 (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: xt (拷贝猫), 信区: Linux
标 题: awk问题求救
发信站: BBS 未名空间站 (Sat Nov 17 18:13:38 2012, 美东)
今天恶补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: te... 阅读全帖
r******l
发帖数: 10760
4
你从头到尾没给testvar赋值,它的值当然不会改变了。
当然,你更可能是想改变(*testvar)的值,而不是testvar本身的值。但是你也没给(*
testvar)赋过值啊。你最后那行如果该成*temp = "a",因为此时temp跟testvar一样了
,所以相当于给*testvar赋值了,应该就可以达到你的目的了。
n****t
发帖数: 27
5
char *testvar;
void myfunction(char fname[])
{
char *temp;
temp = testvar;
temp = "a";
}
我想实现的是在这个函数里给temp赋一个值,然后传到testvar(定义在函数之外)。但
是我发现在这个函数里我改变不了testvar的值。有人遇到个这种问题吗?谢谢。
n********6
发帖数: 1511
6
objective:
SELECT * FROM TABLE1
WHERE @COLUMEVariable = 'xyz'
(SQL SERVER 2005)
请问:以下dynamic sql哪里出错了?有没有其他办法?谢谢。
Declare @testvar varchar(50)
Declare @testval varchar(50);
Set @testvar = Col1;
Set @testval = 'on';
SELECT * FROM ...
WHERE @testvar is not null
and @testvar =
CASE UPPER(@testval)
WHEN 'ON' THEN 'on'
END
r******o
发帖数: 81
7
其实我就是想在一个data step中创建一个macro variable: testvar,但是还需要紧接
着就可以用这个macro variable来创建一个新变量:a2。
我知道call symput创建的macro var必须先把当前data step关闭才可以调用,请问还
有别的办法可以完成我的这个编程想法吗?
谢谢大家了!!
data test1;
input a b c;
cards;
1 1 1
;
run;
data test2;
set test1;
do i = 1 to 2;
a1 = i;
call symput('testvar',a1);
%put &testvar.;
a2 = &testvar.; *ALL I want is to get a2 = 1 for the first record and 2 for
the second record in a dynamic way;
output;
end;
run
l********a
发帖数: 1154
8
传入外部变量指针即可
char *testvar;
void myfunction(char *gVar)
{
char *temp;
temp = "a";
gVar = temp;
}
调用
myfunction(testvar);
d*******y
发帖数: 349
9
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
这是我做的test。
test1
1|2|3
2|3|4
3|2|5
test2
1|a|f
2|b|g
join test1 and test2 using regular left outer join.
join -t"|" -a1 test1 test2 > test3
now, process test3
awk -F"|" 'BEGIN{for(i=1;i<=2;i++) testvar=testvar"|0"}NF<5 {print $0testvar;
next}{print $0}' test3 > test4
注意事项:
1.我的例子用的是pipe做为delimiter,习惯.
2.希望for loop要多长看你的两个文件column 差多少。
试试吧。不过几万列,不知道你的awk版本给不给力。如果不行试试gawk。
w*****1
发帖数: 473
10
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
如果我还是用space delimiter,就是要改成:
join -t" " -a1 test1 test2 > test3
awk -F" " 'BEGIN{for(i=1;i<=2;i++) testvar=testvar"|0"}NF<5 {print $
0testvar;
next}{print $0}' test3 > test4
是吗?谢谢!
w*****1
发帖数: 473
11
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
testvar=testvar"|0"}
如果是用space delimiter的话,0前面的|是不是要去掉
i*e
发帖数: 352
12
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
是的 testvar=testvar" 0"
w*****1
发帖数: 473
13
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
我用了这个命令,结果所有加上去的0都和第一个文件的最后一列粘在一起,看了一下
列数,产生后的gpt4.txt需要补0的行还是只有5列。
awk 'BEGIN{for(i=1;i<=1636908;i++) testvar=testvar"0"}NF<1636913 {print $
0testvar;next}{print $0}' gpt2.txt > gpt4.txt
i*e
发帖数: 352
14
来自主题: DataSciences版 - 如何合并两个数据文件 (转载)
如果你分隔符是空格,testvar=testvar"0" 0前面要加一个空格
C***U
发帖数: 2406
15
我看着他写的 怎么觉得像是要改变testvar所指的变量的值呢?
l*******G
发帖数: 1191
16
来自主题: Linux版 - awk问题求救
testvar is dynamic, did you allocate memory?
(共0页)