[英]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.