我正在处理具有数千行和标题的表文件。 但是我必须在每行中添加行名(行名代表行号)。 我如何在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命令完成这些操作?
答案 0 :(得分:3)
使用awk:
awk 'NR==1{print "sim "$0;next}{print "AM_"NR-1"_arp "$0}' yourfile
说:
NR==1
,则打印“ sim”以及整行:print "sim "$0;
next
NR
加上“ _arp”,然后打印整行$0
。 如果目录中需要执行许多操作,则可以通过通配符引用它们,也可以将输出重定向到awk内部:
awk 'NR==1{print "sim "$0 > FILENAME"_out";next}{print "AM_"NR-1"_arp "$0 > FILENAME"_out"}' ./yourfile*
答案 1 :(得分:2)
awk 'BEGIN {i=0} {print "AM_" i++ "_arp " $0}' <file> | sed 's/AM_0_arp/sim/g'
我只需将您选择的字符串添加到每行开头之间,并在其之间添加一个计数器,然后将sim替换为标题的第一个实例。