через Python.
#!/usr/bin/python3
import re
import sys
fil = sys.argv[1]
with open(fil) as f:
m = re.split(r'[\n\r]+(?= *\d+\s+ID\d+_1)', f.read())
l = []
for i in m:
l.append(re.sub(r'(?s)^(\s*(\d+)\s+([^_]+)_1)([\n\r]+\s*(\d+)\s+\3_2)$', \
lambda m: m.group(1) + " "+ str(float(m.group(2))/(float(m.group(2))+float(m.group(5)))) + m.group(4),i))
print('\n'.join(l), end = "")
Сохранить вышеуказанный скрипт как Script.py
, а затем запустить его,
python3 script.py inputfile
Пример:
$ python3 f.py file
10 ID1_1 0.3333333333333333
20 ID1_2
1 ID3_1 0.1
9 ID3_2
20 ID20_1
15 ID2_1 0.047619047619047616
300 ID2_2