awk没有在for循环中工作

时间:2013-03-01 17:15:40

标签: for-loop awk

我有一个工作正常的awk命令:

awk '$1==1{print $1,$2,$4}' file > out1

如果我在for循环中放入相同的awk命令,我只会获得emtpy输出文件:

for i in {1..22}
do
awk '$1==$i{print $1,$2,$4}' file > out$i
done

这提供了22个空输出文件。 for循环有什么问题?

2 个答案:

答案 0 :(得分:2)

尝试:

for i in {1..22}
do
awk -v num="$i" '$1==num{print $1,$2,$4}' file > out$i
done

答案 1 :(得分:1)

试试这一行:

awk -vvar="$i" '$1==var{print $1,$2,$4}' file >out$i

实际上你不需要for循环,如果你的$ 1总是一个整数,也试试这个:

awk '$1>0&&$1<=22{print $1,$2,$4>"out"$1}' file