Вот структура моего файла:

/**** 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%            

Вот мой сценарий

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

Но он отображает только имя файла. У вас есть идея, пожалуйста?

2- Я бы хотел извлечь соответствующий IP-адрес. Вот некоторые детали:

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 

Большое спасибо за помощь.

С уважением.

1 ответ1

2

Как уже отмечалось, вы должны исправить опечатку $File .

В зависимости от того, что вы делаете с выводом, вам может вообще не понадобиться тест if . Вы говорите, что хотите, чтобы IP-адрес хранился в переменной:

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

Это может быть упрощено намного дальше для того, что это стоит, но это соответствует тому, что у вас уже есть.

Обратите внимание, что это будет соответствовать только первому экземпляру IP, соответствующему DN в файле; такое поведение подразумевается при использовании опции -q для grep которая завершается сразу при первом совпадении.

Если вы хотите что-то делать с каждым случаем, вам придется делать что-то другое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .