Arrays AWK-如何轻松定义自定义的值列表并在其中循环?
首先,我正在寻找一种更简单的方法,而不是在这里调试问题 我知道,在AWK中,我们可以循环使用如下值:Arrays AWK-如何轻松定义自定义的值列表并在其中循环?,arrays,loops,for-loop,awk,Arrays,Loops,For Loop,Awk,首先,我正在寻找一种更简单的方法,而不是在这里调试问题 我知道,在AWK中,我们可以循环使用如下值: echo "hello world" |awk '{for (t=1; t<=10; t++) print t, $0}' echo "hello world" |awk 'BEGIN{t_values[1]=1; t_values[3]=1, t_values[5]=1, ... t_values[700]=1, t_values[900]=1}
echo "hello world" |awk '{for (t=1; t<=10; t++) print t, $0}'
echo "hello world" |awk 'BEGIN{t_values[1]=1; t_values[3]=1, t_values[5]=1, ... t_values[700]=1, t_values[900]=1} {for (t in t_values) print t, $0}'
然而,这需要大量的输入,而且容易出错。有没有更简单的方法?例如,定义一个值列表,如t_values=[1,3,5,7,9,…,700,900],然后循环通过它?您可以传递逗号分隔的值并使用拆分:
awk -v t_values='1,3,5,7,9,700,900' 'BEGIN {
n = split(t_values, vals, /,/); for (i=1; i<=n; i++) print vals[i]}'
如果要在awk内定义变量,则:
您可以传递逗号分隔的值并使用拆分:
awk -v t_values='1,3,5,7,9,700,900' 'BEGIN {
n = split(t_values, vals, /,/); for (i=1; i<=n; i++) print vals[i]}'
如果要在awk内定义变量,则:
awk 'BEGIN{t_values="1,3,5,7,9,700,900";
n = split(t_values, vals, /,/); for (i=1; i<=n; i++) print vals[i]}'