【发布时间】:2019-01-10 07:35:06
【问题描述】:
下面的命令行适用于我
perl -F'\t' -lane'print join ",", @F[1,2]' inputfile
但我想传递一个可变的列列表,不一定是 @F[1,2] 中指定的第 1 列和第 2 列。
例如,根据输入文件的总列数,我想随机选择一个子集"$random-columns",并将其传递给@F[$random-columns]。
我该怎么做?
我尝试首先生成一个 1 到 50 之间的 5 个随机列号的 columnList:
columnList=()
for (( i = 0; i <= 5-1; ++i ))
do
(( randCol = ($RANDOM % 50) + 1 ))
columnList[i]=$randCol
done
然后我做了以下插入逗号:
cols_new=$(IFS=,; echo "${columnList[*]}")
并尝试将其传递给 perl 命令行,如下所示(无效):
perl -F'\t' -lane'print join ",", @F[$cols_new]' inputfile
【问题讨论】: