- 此问题在此处已有答案**:
Print the 1st and every nth column of a text file using awk(3个答案)
3天前关闭。
我想在一个制表符分隔的文件中打印第一列(gene
)和所有raw_counts
列。
我试过了
BEGIN {FS = "\t"}
{for (i = 3; i <= NF; i += 1) printf ("%s%c", $i, i + 1 <= NF ? "\t" : "\n");}
但是输出与输入相同。
awk -f prog.awk < input.csv > output.csv
输入数据:head -3 input.txt
Hybridization REF TCGA-A3-3306-01A-01R-0864-07 TCGA-A3-3306-01A-01R-0864-07 TCGA-A3-3306-01A-01R-0864-07 TCGA-A3-3307-01A-01R-0864-07 TCGA-A3-3307-01A-01R-0864-07 TCGA-A3-3307-01A-01R-0864-07
gene raw_counts median_length_normalized RPKM raw_counts median_length_normalized RPKM
?|100130426 1 0.122549019607843 0.0330807728010661 0 0 0
预期输出:
Hybridization REF TCGA-A3-3306-01A-01R-0864-07 TCGA-A3-3307-01A-01R-0864-07
gene raw_counts raw_counts RPKM
?|100130426 1 0
3条答案
按热度按时间6xfqseft1#
一些调整:
2
启动循环计数器+3
修改OP的代码:
对样本输入和预期输出进行多次更改后,最新的:
上面的
awk
生成:velaa5lx2#
您可以执行以下操作:
不过,第一次打印时,它会打印头文件,从那时起,它只打印与这些头文件关联的值。
uqjltbpv3#
**更新1:**使整个系统端到端工作(
http
s至关重要):bsd-tar
而不是gnu-tar
*不要浪费时间循环列- * 使用
seq
或jot
动态生成静态awk
代码:*