我有一个工作正常的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循环有什么问题?
答案 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