Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
Linux 使用带变量的awk_Linux_Awk - Fatal编程技术网

Linux 使用带变量的awk

Linux 使用带变量的awk,linux,awk,Linux,Awk,我使用这个awk命令从文本文件中提取三行 awk 'BEGIN {FS="\t";OFS=","}; {print $1,$3,$10}' $FILENAME > $OUTPUT 我希望将列编号单独指定为一个变量,以便将来更容易进行如下修改: COLUMNS=$1,$3,$10 awk 'BEGIN {FS="\t";OFS=","}; {print $COLUMNS}' $FILENAME > $OUTPUT 但是,它将所有列都拉入输出,而不仅仅是指定的3i。如何正确地执行此操

我使用这个awk命令从文本文件中提取三行

awk 'BEGIN {FS="\t";OFS=","}; {print $1,$3,$10}' $FILENAME > $OUTPUT
我希望将列编号单独指定为一个变量,以便将来更容易进行如下修改:

COLUMNS=$1,$3,$10
awk 'BEGIN {FS="\t";OFS=","}; {print $COLUMNS}' $FILENAME > $OUTPUT
但是,它将所有列都拉入输出,而不仅仅是指定的3i。如何正确地执行此操作?

像这样

$ more file
a,b,c,d,e
1,2,3,4,5

$ a='$1,$2,$NF'

$ awk -F, "{print $a}" file
a b e
1 2 5

@有帮助吗:这个建议有效。那么,为什么这不能回答OP的问题呢?你被引用必需品/规则/限制的外壳困住了。尝试
echo$COLUMNS
并开始获得启发