Uma alternativa em python:
Em um verso:
python3 -c "for l in open('f'): d = l.strip().split('|');[print('|'.join([s, d[1]])) for s in d[0].split(',')]"
Onde 'f'
é o caminho para o seu arquivo, em aspas (simples).
Saída:
BHARAT|ABCI
SELXG|ABCI
SAAB|ABCI
BHARAT|XYZQ
HONEY|XYZQ
HIRO|XYZQ
ABBS|XYZQ
Ou mais legível:
#!/usr/bin/env python3
import sys
# open the file
for l in open(sys.argv[1]):
# remove spaces from the line(s), split by "|"
d = l.strip().split('|')
# list the first part of the line, join each of the items with the second part of the line
[print('|'.join([s, d[1]])) for s in d[0].split(',')]
Para usar
- Copie o script em um arquivo vazio, salve-o como
reorganize.py
-
Execute-o pelo comando:
python3 /path/to/reorganize.py /path/to/file_a
Explicação:
O script:
-
Abre o arquivo, lê-o por linha:
for l in open(sys.argv[1]):
-
divide a linha pelo delimitador |
, remove o \n
d = l.strip().split('|')
-
divide a primeira parte pelo delimitador "," listando seus itens: d[0].split(',')
e unindo cada um dos itens à última parte da linha: print('|'.join([s, d[1]]))
:
[print('|'.join([s, d[1]])) for s in d[0].split(',')]