【发布时间】:2017-11-28 14:47:02
【问题描述】:
我有一个看起来像这样的虚拟文件:
a ID_1 S1 S2
b SNP1 1 0
c SNP2 2 1
d SNP3 1 0
我想用相应的行号替换第 2 列的内容。我的文件将如下所示:
a 1 S1 S2
b 2 1 0
c 3 2 1
d 4 1 0
我可以使用以下命令来做到这一点:
cut -f 1,3-4 -d " " file.txt | awk '{print $1 " " FNR " " $2,$3}'
我的问题是,有没有更好的方法来做到这一点?特别是,我正在处理的真实文件有 2303 列。显然我不想写:
cut -f 1,3-2303 -d " " file.txt | awk '{print $1 " " FNR " " $2,$3,$4,$5 ETC}'
有没有办法告诉 awk 从第 2 列打印到最后一列而不必写下所有名称?
谢谢
【问题讨论】: