Я пытаюсь напечатать определенные c поля в этом CSV-файле, используя awk, но я сталкиваюсь с проблемой, когда некоторые строки содержат запятые, но они не являются новыми полями. Например, следующая строка не проблема для меня.
ABAKEV,InChI=1S/C10H7NO/c12-7-9-6-5-8-3-1-2-4-10(8)11-9/h1-7H,8,2,H7C10ON,1562.9152
Я использую:
awk -F "," '{print $1,$3,$5,$6}'
, что дает мне желаемый результат:
ABAKEV 8 H7C10ON 1562.9152
Однако, когда в скобках есть строки, содержащие запятые, должны принадлежать ко второму полю. Например:
ACEMID03,InChI=1S/C2H5NO/c1-2(3)4/h1H3,(H2,3,4),18,1,H5C2ON,1491.2031,-,308.5,158.19,CC(=O)N,10.87831,3.89183,54.21
В частности,
(H2,3,4)
Мой желаемый результат:
ACEMID03 18 H5C2ON 1491.2031
Есть ли у кого-нибудь идеи о том, как я могу разбить это как я хочу? Желательно использовать awk, потому что я более знаком с ним. Если у кого-то есть какие-либо быстрые решения, пожалуйста, дайте мне знать. Спасибо!