首页 > 解决方案 > 如何在 Linux 中使用标题在制表符分隔的文件中添加行名

问题描述

我正在处理一个包含数千行和标题的表格文件。但是我必须在每一行中添加行名(行名代表行号)。我怎么能在linux中做到这一点?

我可以用 excel 做到这一点,但是文件太多,所以我希望我能写下 linux 命令来处理它。

我的文件看起来像这样。

parameter1 parameter2 paramter3
1.2 1.3 1.4
2.1 2.1 1.5
1.5 1.6 2.1
....

我想添加如下行名:

sim parameter1 parameter2 paramter3
AM_1_arp 1.2 1.3 1.4
AM_2_arp 2.1 2.1 1.5
AM_3_arp 1.5 1.6 2.1
....

我怎么能用linux命令完成这些?

标签: linux

解决方案


使用 awk:

 awk 'NR==1{print "sim "$0;next}{print "AM_"NR-1"_arp "$0}' yourfile

说的是:

  1. 如果这是第一行(标题行)NR==1,则打印“sim”加上整行:print "sim "$0;
  2. 跳到下一行跳过程序的其余部分next
  3. 对于遇到的任何其他行,打印“AM”加上行号NR加上“_arp”,然后是整行$0

如果目录中有许多文件需要执行此操作,则可以通过通配符引用它们,并且可以在 awk 中重定向输出:

awk 'NR==1{print "sim "$0 > FILENAME"_out";next}{print "AM_"NR-1"_arp "$0 > FILENAME"_out"}' ./yourfile*

推荐阅读