Unix 如何选择不相邻的多个列?

Unix 如何选择不相邻的多个列?,unix,awk,Unix,Awk,我有一个数据集,我试图从中选择前10列,从中选择最后27列(从第125列开始到最后152列) awk'BEGIN{FS=“\t”}{printf$1,$2,$3,$4,$5,$6,$7,$8,$9,$10;for(i=125;i由于没有生成样本,所以无法测试它。您不需要手动写入1…10字段值,您也可以使用循环来实现 awk 'BEGIN{FS=OFS="\t"}{for(i=1;i<=10;i++){printf("%s%s",$i,OFS)};for(i=(NF-27);i<=NF

我有一个数据集,我试图从中选择前10列,从中选择最后27列(从第125列开始到最后152列)


awk'BEGIN{FS=“\t”}{printf$1,$2,$3,$4,$5,$6,$7,$8,$9,$10;for(i=125;i由于没有生成样本,所以无法测试它。您不需要手动写入
1…10
字段值,您也可以使用循环来实现

awk 'BEGIN{FS=OFS="\t"}{for(i=1;i<=10;i++){printf("%s%s",$i,OFS)};for(i=(NF-27);i<=NF;i++){printf("%s%s",$i,i==NF?ORS:OFS)}}' Input_file > output_file

awk'BEGIN{FS=OFS=“\t”}{for(i=1;i您可以尝试以下内容,因为没有生成样本,所以无法对其进行测试。您不需要手动写入
1…10
字段值,您也可以使用循环

awk 'BEGIN{FS=OFS="\t"}{for(i=1;i<=10;i++){printf("%s%s",$i,OFS)};for(i=(NF-27);i<=NF;i++){printf("%s%s",$i,i==NF?ORS:OFS)}}' Input_file > output_file
awk'BEGIN{FS=OFS=“\t”}{for(i=1;i使用

awk'BEGIN{FS=OFS=“\t”}
{c=”“;for(i=1;i使用

awk'BEGIN{FS=OFS=“\t”}

{c=”“;for(i=1;i如果您已经知道
cut
是此任务的工具,请不要重新发明轮子

$ cut -f1-10,125-152 bigdata
tab是默认的分隔符

如果您不知道列的数量,
awk
来帮助您

$ cut -f1-10,$(awk '{print NF-27"-"NF; exit}' file) file

awk
将通过读取文件的第一行来打印结束范围。

如果您已经知道列数
cut
是执行此任务的工具,请不要重新发明轮子

$ cut -f1-10,125-152 bigdata
tab是默认的分隔符

如果您不知道列的数量,
awk
来帮助您

$ cut -f1-10,$(awk '{print NF-27"-"NF; exit}' file) file

awk
将通过读取文件的第一行来打印结束范围。

不清楚什么不起作用,请在您的帖子中更清楚地提到什么不起作用,然后让我们知道吗?亲爱的DN1,首先欢迎使用Stack Overflow。正如您在最后两个问题中提到的,您是Linux和awk的新手。为了更好地理解awk,我强烈建议您查看一下125到152之间的标签信息共有28列。不清楚哪些不起作用,请在您的帖子中更清楚地提及哪些不起作用,然后让我们知道。亲爱的DN1,首先欢迎使用堆栈溢出。正如您在最后几个问题中提到的,您是Linux和Awk新手。为了更好地理解Awk,我强烈建议您u查看标签信息,标签信息介于125到152之间(含125到152)共有28列。谢谢。抱歉,因为我对linux非常陌生,所以有很多我不确定的地方。您提供的这些代码很有用,但是第1-10列只打印在1列中,然后是第125-152列,每个列都有各自的独立列,因为我正在寻找。这与此相同,但将%放在中间,所以例如,第一列被称为:“Chr%2Start%2End%2Ref%2Alt%2Func.refGene%2Gene.refGene%2GeneDetail.refGene%2ExonicFunc.refGene%2aachchange.refGene%2id.snp2”然后是125-152中的其他27列selection@DN1,有一个输入错误,再次检查,我们现在应该很好了。再次检查链接谢谢你。抱歉,因为我对linux非常陌生,所以有很多我不确定。你提供的这段代码很有用,但是第1-10列只在1列中打印,而ch之后是第125-152列,每个列都有各自的独立列,因为我正在寻找这一列,但将%放在中间,因此,例如,第一列被称为:“Chr%2Start%2End%2Ref%2Alt%2Func.refGene%2Gene.refGene%2GeneDetail.refGene%2ExconicFunc.refGene%2Achange.refGene%2id.snp2”然后是125-152中的其他27列selection@DN1,有一个输入错误,再次检查,我们现在应该是好的。也检查链接一次谢谢你,这是为我工作,谢谢你提供的链接,我会在继续我的代码之前查看它们。谢谢你,这是为m工作e、 感谢您提供的链接,在继续我的代码之前,我现在将研究它们。