awk:添加新列,包括标题

时间:2017-11-10 10:17:51

标签: awk

我有一个看起来像这样的文件:

name measurement gender duration
a 1 m 55
b 1 f 54
c 2 m 53
... etc

我想使用awk添加一个列,除了第一行(标题)之外,每列都有相同的值。假设我想为每一行添加值new_column,其值为99,因此输出文件如下所示:

name measurement gender duration new_column
a 1 m 55 99
b 1 f 54 99
c 2 m 53 99
... etc

这听起来像是awk的工作......但我一直无法弄明白。有任何想法吗?非常感谢!

3 个答案:

答案 0 :(得分:3)

您可以使用此awk命令:

awk 'NR==1{$(NF+1)="new column"} NR>1{$(NF+1)="99"}1' file

答案 1 :(得分:1)

$ awk '{s=(NR==1)?"new_column":"99";$0=$0 OFS s}1' file
name measurement gender duration new_column
a 1 m 55 99
b 1 f 54 99
c 2 m 53 99

答案 2 :(得分:1)

你可以这样打高尔夫球(假设你没有空行):

awk '$++NF=NR==1?"new_column":99' infile

输出:

name measurement gender duration new_column
a 1 m 55 99
b 1 f 54 99
c 2 m 53 99