Precisamos extrair a coluna da saída do comando. Eu tentei os métodos usando os comandos awk e cut. Considerando que temos espaços nos valores da 2ª coluna devido ao qual o delimitador de espaço ou outro caractere não analisa a saída da 2ª coluna de maneira correta. Temos outro método para obter puramente a segunda coluna da saída conforme mencionado acima?
# cat info.txt
Vmid Name File
369 DO-NOT-DELL [datastore1] DO-NOT-DELL/DO-NOT-DELL.vmx
389 VMware vCenter Server [datastore1] VMware vCenter Server/VMware vCenter Server.vmx
390 Auth-vcenter-Don't delete [datastore1] Auth-vcenter-Don't delete/Auth-vcenter-Don't delete.vmx
393 VirtualMachine [datastore1] VirtualMachine/VirtualMachine.vmx
9 Server 2005 for VM (dev team) [datastore1] Server 2005 for VM (dev team)
# cat info.txt | awk '{print $2}'
DO-NOT-DELL
VMware
Auth-vcenter-Don't
VirtualMachine
Server
Como na saída acima de uma 2ª coluna, não temos o valor completo como no arquivo original.
Responder1
É possível analisarcolunas de largura fixa com GNU awk:
A divisão de um registro de entrada em campos de largura fixa é especificada atribuindo uma string contendo números separados por espaços à variável integrada
FIELDWIDTHS
. Cada número especifica a largura do campo, incluindo colunas entre os campos. Se quiser ignorar as colunas entre os campos, você poderá especificar a largura como um campo separado que será posteriormente ignorado.
% awk -v FIELDWIDTHS="7 37 *" '{print $2}' foo
Name
DO-NOT-DELL
VMware vCenter Server
Auth-vcenter-Don't delete
VirtualMachine
Server 2005 for VM (dev team)
Você também pode usar uma expressão regular como separador de campo para dividir o texto, por exemplo, usando 3 ou mais espaços como FS:
% awk -F ' {3,}' '{print $2}' foo
Name
DO-NOT-DELL
VMware vCenter Server
Auth-vcenter-Don't delete
VirtualMachine
Server 2005 for VM (dev team)
Responder2
Também encontrei uma boa abordagem de um amigo para obter a lista das máquinas virtuais.
# cat info.txt | tr -s " " | cut -d "[" -f1 | cut -d " " -f2- | tail -n +2
DO-NOT-DELL
VMware vCenter Server
Auth-vcenter-Don't delete
VirtualMachine
Server 2005 for VM (dev team)
Responder3
Converta espaços em tabulações com posições de tabulação não padrão:
unexpand -t 7,44 info.txt | cut -f2