com sed
:
sed 's/[KR[:blank:]]\+/\n/g' A.txt
-
sed 's/[KR[:blank:]]\+/\n/g' A.txt
substitui todos os um ou maisK
,R
e espaço / tab com nova linha deA.txt
com awk
:
awk -F '[KR[:blank:]]+' '{for(i=1; i<=NF; i++) print $i}' A.txt
-
-F '[KR[:blank:]]+'
define o separador de campo como um ou maisK
,R
, espaço / tabulação -
{for(i=1; i<=NF; i++) print $i}
itera e imprime os campos
Você pode aproveitar awk
para pesquisar padrões resultantes em outro arquivo usando os dois arquivos como argumentos e trabalhando a partir daí.
Mais genérico seria usar grep
para obter padrões de um nome de arquivo de entrada, você pode usar a substituição de processo para obter um descritor de arquivo:
grep -f <(awk/sed ... A.txt) B.txt
Para correspondência exata, adicione -F
:
grep -Ff <(awk/sed ... A.txt) B.txt
Exemplo:
% cat A.txt
MSTNPKPQRK TKRNTNRRPE DVKFPGGQI
% sed 's/[KR[:blank:]]\+/\n/g' A.txt
MSTNP
PQ
T
NTN
PE
DV
FPGGQI
% awk -F '[KR[:blank:]]+' '{for(i=1; i<=NF; i++) print $i}' A.txt
MSTNP
PQ
T
NTN
PE
DV
FPGGQI