从文件中输出一定范围的列,其中范围由两个变量设置

从文件中输出一定范围的列,其中范围由两个变量设置

我想从文件中输出一定范围的列,其中范围由两个变量设置。

真的很挣扎。我认为 cut 是最好的工具,但据我所知,它不接受变量来指定范围。

这是一个制表符分隔的文件。我试过了:

Column=8401    

awk -F $'\t' -v c=$Column '{ for (x=1; x<=c; x++) {  printf "%s\n", $x } }' ~/file.txt > ~/file1.txt

但这不起作用(目标是选择 1 到 8401 的列范围)。

举一个输入和输出的例子:

ColumnStart=1    
ColumnEnd=3

输入:

12   33   55   23   13   88

使用$column我将输出到$ColumnStart的变量$ColumnEnd

输出:

12   33   55

答案1

使用这样的变量:

cut -f${ColumnStart}-${ColumnEnd}

(假设变量始终包含适当的值...)。

相关内容