Quando lanço um comando beta, tenho este resultado:
dda6e95c-ecd1-4c22-a8df-f118af6aff02 Mount to DZ70cd on /dev/vda
f01e331e-0394-423f-b8ea-150f6b88029e Mount to DZ74cd on /dev/vdc
9f0d31ec-caa2-4e88-9cbd-4c82ebda5be3 Mount to DZe64c on /dev/vdc
2f3da174-1f9e-40e7-8869-563d90b103f4 Mount to DZ0d76 on /dev/vdc
Eu gostaria de aplicar um processamento de dados em cada linha recebida com um loop bash para as:
for i in `beta-command` ; do echo $i ; done ;
e eu tenho o resilt assim:
dda6e95c-ecd1-4c22-a8df-f118af6aff02
Mount
to
DZ70cd
on
/dev/vda
f01e331e-0394-423f-b8ea-150f6b88029e
Mount
to
DZ74cd
on
/dev/vdc
Como pedir ao loop para considerar a linha e não o termo?
Obrigado
Você pode definir o Separador de Campo Interno (
IFS
) para nova linha:Ou use um
while
loop:ou use
xargs
:ou use
awk
se sua tarefa for manipular texto:Em relação aos prós (?) e contras de usar loops para processar cada linha de saída de comando ou um arquivo, você pode ler isso (obrigado @Jeff Schaller) .