Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWK 3.1.7-一个系统中的多个回路_Awk_Gawk - Fatal编程技术网

AWK 3.1.7-一个系统中的多个回路

AWK 3.1.7-一个系统中的多个回路,awk,gawk,Awk,Gawk,我尝试使用以下代码对2个数组进行排序: n = asorti (pacben,pacsor) m = asorti (pacben2,pacsor2) 我需要把它们分类,最好是一起。我知道我可以通过以下方式分别完成: n = asorti (pacben,pacsor) for (p = 1;p <= n; p++) { blah } m = asorti (pacben2,pacsor2) for (p2 =1;p2 <= m; p2++) { blah } n =

我尝试使用以下代码对2个数组进行排序:

 n = asorti (pacben,pacsor)
 m = asorti (pacben2,pacsor2)
我需要把它们分类,最好是一起。我知道我可以通过以下方式分别完成:

 n = asorti (pacben,pacsor)
for (p = 1;p <= n; p++) {
blah
}
 m = asorti (pacben2,pacsor2)
for (p2 =1;p2 <= m; p2++) {
blah
}
 n = asorti (pacben,pacsor)
 m = asorti (pacben2,pacsor2)
for (p = 1;p <= n;p++ && p2 = 1;p2 <= m;p2++) {
blah
}
n=asorti(pacben,pacsor)
对于C中的(p=1;p),您需要修改:

for (p = 1;p <= n;p++ && p2 = 1;p2 <= m;p2++) {
GNU
awk

$ awk -v n=2 -v m=3 'BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}'
awk: syntax error at source line 1
 context is
    BEGIN { for (p = >>>  1, <<< 
awk: illegal statement at source line 1
awk: illegal statement at source line 1
$
$ awk -v n=2 -v m=3 'BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}'
awk: cmd. line:1: BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}
awk: cmd. line:1:                   ^ syntax error
awk: cmd. line:1: BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}
awk: cmd. line:1:                                                    ^ syntax error
$
这利用了以下事实:
p1
p2
被初始化为相同的值,并且
p1
p2
在循环的增量部分都不是零。

在C中,您需要修改:

for (p = 1;p <= n;p++ && p2 = 1;p2 <= m;p2++) {
GNU
awk

$ awk -v n=2 -v m=3 'BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}'
awk: syntax error at source line 1
 context is
    BEGIN { for (p = >>>  1, <<< 
awk: illegal statement at source line 1
awk: illegal statement at source line 1
$
$ awk -v n=2 -v m=3 'BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}'
awk: cmd. line:1: BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}
awk: cmd. line:1:                   ^ syntax error
awk: cmd. line:1: BEGIN { for (p = 1, p2 = 1; p <= n && p2 <= m; p1++, p2++) print p1, p2}
awk: cmd. line:1:                                                    ^ syntax error
$

这利用了这样一个事实,即
p1
p2
被初始化为相同的值,并且
p1
p2
在循环的增量部分都是非零的。

保持简单。有各种可能的解决方案,这取决于您真正想要的是什么,以及
blah
可能做什么,但基于在您接受时,这必须是您想要的:

n = asorti (pacben,pacsor)
m = asorti (pacben2,pacsor2)
for (p = 1;p <= n && p <=m; p++) {
    blah
}
n=asorti(pacben,pacsor)
m=asorti(pacben2,pacsor2)

对于(p=1;p保持简单。有各种可能的解决方案,取决于您真正想要的是什么,以及
blah
可能做什么,但基于您的接受,这一定是您想要的:

n = asorti (pacben,pacsor)
m = asorti (pacben2,pacsor2)
for (p = 1;p <= n && p <=m; p++) {
    blah
}
n=asorti(pacben,pacsor)
m=asorti(pacben2,pacsor2)

for(p=1;p不确定我是否理解了这个问题。对asorti的调用足以进行排序。循环用于显示或使用内容。如果要同时遍历这两个数组,则只能使用一个索引(p2)注意一个索引可能比另一个索引小。@callmeSteve那么如何编写
for
循环?我是否必须对这两个
asorti
使用相同的veriable?例如
n=asorti(pacben,pacsor)n=asorti(pacben2,pacsor2)for(p=1;p我不确定我是否理解了这个问题。对asorti的调用足以进行排序。循环用于显示或使用内容。如果要同时遍历这两个数组,则只能使用一个索引(p2)注意一个索引可能比另一个索引小。@callmeSteve那么如何编写
for
循环?我是否必须对这两个
asorti
使用相同的veriable?例如
n=asorti(pacben,pacsor)n=asorti(pacben2,pacsor2)for(p=1;pAwesome Thank,它像一个符咒一样工作。我从来没有想过你可以在
for
语句中这样做。等等-你永远不会真正编写最后一个循环,因为它相当于更简单的
for(p=1;p是的,@EdMorton;将不需要编写两个循环控制车。我假设在实际循环的主体中有某种东西在处理(增量或减量,以便随时调整)循环分别进行索引。我怀疑OP只是认为他需要2个循环控制变量,因为他有2个数组。非常感谢,这很有魅力。我从没想过你可以在
for
语句中做到这一点。等等-你永远不会真正编写最后一个循环,因为它相当于更简单的
for(p=1;p是的,@EdMorton;将不需要编写两个循环控制车。我假设在实际循环的主体中有某种东西在处理(增量或减量,以便随时调整)循环分别索引。我怀疑OP只是认为他需要2个循环控制变量,因为他有2个数组。啊,很高兴知道。啊,很高兴知道。