Supondo que os números estão no arquivo numbers e que o arquivo de modelo que você gostaria de usar é file :
awk -F'|' -v OFS='|' 'NR==FNR { n[++i] = $0; next } { for (i in n) { $3 = substr($3,1,2) n[i]; print } }' numbers file
Isso primeiro lerá os números na matriz n e, em seguida, para o arquivo de modelo, use os dois primeiros caracteres do terceiro campo | -delimited, concatene isso com os números da matriz n e imprima o resultado uma vez para cada número.
As opções -F'|' -v OFS='|' garantem a leitura e gravação dos dados como | -delimited.
Em seguida, basta redirecionar a saída disso para um novo arquivo.
Isso não depende do modelo para conter xxxxxxxxx .
Teste:
$ cat file
09Y20171031 13415520171031 134155AP|AO|AB something something|AC|CH|BIN|
$ awk -F'|' -v OFS='|' 'NR==FNR { n[++i] = $0; next } { for (i in n) { $3 = substr($3,1,2) n[i]; print } }' numbers file
09Y20171031 13415520171031 134155AP|AO|AB550425175|AC|CH|BIN|
09Y20171031 13415520171031 134155AP|AO|AB550426504|AC|CH|BIN|
09Y20171031 13415520171031 134155AP|AO|AB550411876|AC|CH|BIN|
Uma abordagem bash -only (sem utilitários externos) que usa os nove x -es:
template=$(<file)
while read number; do
printf '%s\n' "${template//xxxxxxxxx/$number}"
done <numbers