Команда Bash для поиска строки справа от десятичной дроби между двумя скобками - PullRequest
0 голосов
/ 20 ноября 2018

Вот фрагмент кода ...

out0::HRSKACTMGT_FNL_ACTN_DECSN_documentation(in)=
begin

out0.hram_cust_acct_actn_in::depends_on(
         in.acct_ref_nb,
         lookup("hrskactmgt interim actn decsn rollup lookup",'keystr').common_rollup_out_num00
         /*   Rule: "Compute hram_cust_acct_actn_in"   */ );


out0.cld_acct_rndm_dgt_2_nb::depends_on(
         in.entp_prty_id,
         lookup("hrskactmgt interim actn decsn rollup lookup",'keystr').common_rollup_out_num01
         );

out0.*::in.*;
end;

Этот код говорит о том, что элемент данных зависит от этих других элементов данных.Я хочу запустить серию команды sed, чтобы убрать все зависимости.Мне все равно, для чего есть иждивенцы.Я просто хочу перечислить все зависимости.Затем я могу использовать awk для удаления дубликатов.Таким образом, для вышеприведенного кода он будет распечатан ....

acct_ref_nb
common_rollup_out_num00
entp_prty_id
common_rollup_out_num01

Это почти как я хочу, для всего текста между каждым набором скобок, распечатать строковое значение справа от десятичной точки.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Это несколько сложно.Я старался изо всех сил, пожалуйста, проверьте, если он делает то, что вы хотите.

$ cat ab_code.dat
out0::HRSKACTMGT_FNL_ACTN_DECSN_documentation(in)=
begin

out0.hram_cust_acct_actn_in::depends_on(
         in.acct_ref_nb,
         lookup("hrskactmgt interim actn decsn rollup lookup",'keystr').common_rollup_out_num00
         /*   Rule: "Compute hram_cust_acct_actn_in"   */ );


out0.cld_acct_rndm_dgt_2_nb::depends_on(
         in.entp_prty_id,
         lookup("hrskactmgt interim actn decsn rollup lookup",'keystr').common_rollup_out_num01
         );

out0.*::in.*;
end;

$ perl -0777 -ne ' { s/(.*)begin(.*?)end;/\2/msg;  while(/(?=::)(.*?)\(.*?\.(.+?)\b.*?\.(.+?)\);/msg) { print "$2\n"."$3\n" } } ' ab_code.dat | grep -v '/\*'
acct_ref_nb
common_rollup_out_num00
entp_prty_id
common_rollup_out_num01
0 голосов
/ 20 ноября 2018

получите ваш результат с awk вот так!

awk -F ' . ' ' /,/ { print $2 } ' file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...