繁体   English   中英

将数字添加到相邻列,并根据匹配bash awk增加增量

[英]add number to adjacent column and increment baed on match bash awk

我想将第二列数据添加到一组坐标(每行一行),该坐标基于重新出现的字符串或定界符(male_position)将这些坐标分组在一起。

这是一个示例数据集:

male_position
0.0
0.0
2.2
3.0
4.5
male_position
0.0
1.2
20.2
male_position
1.0
2.0

我想将分组ID添加到下一列:

script.awk example.file
male_position  1
0.0  1  
0.0  1
2.2  1
3.0  1
4.5  1
male_position  2
0.0  2
1.2  2
20.2  2 
male_position  3
1.0  3
2.0  3

我不太想从哪里开始,但认为awk可以完成它。 我可以在带有awk '$2=(FNR FS $2)' myFile的列中添加连续的数字(按行),但是显然,这并不能根据匹配/定界符对坐标进行分组,然后在每场比赛中滴答作响。

跟随awk可能会帮助您。

awk  '/male_position/{count++} {print $0,count}'  Input_file

说明:

/male_position/ :如果条件为true,则在当前行中搜索字符串male_position ,然后在其后执行指令。

{count++} :每次将光标移到此处时,名为count的变量每次都以1递增其值。

{print $0,count} :打印$0的值(当前行)和count数值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM