grep использует переменную для поиска нескольких выходных данных - PullRequest
0 голосов
/ 02 марта 2019

Я работаю над сценарием, чтобы определить, находится ли ЛЮБОЙ IP-адрес в одном из моих файлов банов.

Я могу заставить его работать до сохранения переменной, но не могу получить последнийgrep для работы с использованием переменной.Причиной для переменных step1 и 2 была попытка заставить egrep работать.

Я ограничен сервером, который я использую.Я ничего не могу добавить к нему, кроме базового grep, поэтому опция fgrep, показанная кем-то еще в другом ответе, не работает.

now=$(date +"%Y%m%d"'.log')  
VAR1="/LOCATION1/$now"  
VAR2="/LOCATION2/$now"  
echo Please enter the Username:  
read input  
echo You have entered $input  
read -n 1 -s -r -p "Press any key to continue"  
echo  
echo DETECTED LOGINS FROM THE FOLLOWING IP ADDRESSES:  
all=$(grep "$input" $VAR1 | grep login | grep -E -o "([0-9]{1,3}[.]){3}[0-9]{1,3}" |
      grep -v <MyIP> | sort | uniq &&
      grep "$input" $VAR2 | grep login | grep -E -o "([0-9]{1,3}[.]){3}[0-9]{1,3}" |
      grep -v <MyIP> | sort | uniq)  
echo "${all[*]}"  
echo  
step1=$(echo $all|tr ' ' '|')  
step2=$(echo "'$step1'")  
read -n 1 -s -r -p "Press any key to continue"  
echo  
echo FOUND BANS:  
egrep $step2 /BANLOCATOIN/$now  
read -n 1 -s -r -p "Press any key to end"  
echo   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...