我想从文件中输出一定范围的列,其中范围由两个变量设置。
真的很挣扎。我认为 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}
(假设变量始终包含适当的值...)。