使用awk或bash将行号添加到最后一列

时间:2015-10-25 16:21:30

标签: bash awk

输入文件格式:

name id department
xyz  20  cic
abc  25  cis

输出应如下所示:

name id department
xyz  20  cic        1
abc  25  cis        2

注意:所有字段均以制表符分隔。

感谢任何帮助!!

3 个答案:

答案 0 :(得分:2)

$ awk -F'\t' 'NR>1{$0=$0"\t"NR-1} 1' file
name    id      department
xyz     20      cic     1
abc     25      cis     2

答案 1 :(得分:1)

Ed Morton答案的变体:

awk -F'\t' -v OFS='\t' 'NR>1 { $(NF+1)=NR-1} 1' file

这使用-v选项设置输出字段分隔符,然后通过设置$(NR+1)简单地将新字段添加到当前记录。

答案 2 :(得分:0)

您应该尝试以下操作:

awk '{printf "%s\t%s\n",$0,NR}' File_name

说明:

$ 0 =打印所有行

NR =每行加一个数字

%s =用于打印文字字符

\ t =水平选项卡

\ n =新行