Script Shell Encontra uma String num ficheiro

0

Aqui está a estrutura do meu arquivo:

/**** Some Text here ****/                         
UN  10.147.243.93  51.46 KB   256     34.2%
UN  10.147.243.89  83.05 KB   256     34.6%
DN  10.147.243.88  66.43 KB   256     32.7%            

Aqui está o meu script

file=$1
echo $file
if grep -q DN $File; then
   echo "Get the corresponding IP address, It is the treatment that I   
         want to do next"
fi

Mas, mostre apenas o nome do arquivo. Você tem uma ideia, por favor?

2- Eu gostaria, então, de extrair o endereço IP correspondente. Aqui estão alguns detalhes:

if grep -q DN $File; then
   echo "Get the corresponding IP address Guest, It is the treatment 
   that I want to do next"
   variable=This address


fi 

Muito obrigado pela ajuda.

Cumprimentos.

    
por researcher 30.06.2015 / 14:36

1 resposta

2

Como observado, você deve corrigir o $File typo.

Dependendo do que você faz com a saída, talvez você não precise do teste if . Você diz que gostaria do endereço IP armazenado em uma variável:

file=$1
echo $file
ip=$(grep -e DN $1 | awk '{ print $2; }')
echo $ip

Isso pode ser simplificado ainda mais pelo que vale, mas corresponde ao que você já tem.

Observe que isso corresponderá apenas à instância primeiro de um IP correspondente a 'DN' no arquivo. esse comportamento está implícito no seu uso da opção -q para grep , que sai imediatamente na primeira correspondência.

Se você quiser fazer algo com cada ocorrência, terá que fazer algo diferente.

    
por 30.06.2015 / 15:08

Tags