Se você está no Linux, provavelmente tem Perl, então
$ cat input1
PATTERN 1
bla bla bla.. XYSS$40$$$3 bla bla...
bla bla bla..
bla bla bla.. GNDC$3$$$23 bla bla bla..
$ perl -ne 'while (/[A-Z]{4}\$+(\d+)\$+(\d+)/g) {
printf "line %3d: $1 * $2 = %d\n", $., $1*$2; }' < input1
line 2: 40 * 3 = 120
line 4: 3 * 23 = 69
O padrão regex corresponde a quatro letras maiúsculas ( [A-Z]{4}
), depois alguns cifrões ( \$+
), seguidos por dígitos ( (\d+)
) e dólares e dígitos novamente. Os parênteses capturam os números para $1
e $2
, e $.
contém o número da linha atual. Altere o printf
a gosto.