grep 변수에 변수가 포함되어 있습니다.

grep 변수에 변수가 포함되어 있습니다.

svlog 파일을 날짜별로 필터링하고 결과를 공백으로 분할하고 싶어서 날짜를 입력하면 작동하지 않습니다. 아래에 작성한 스크립트를 참조하세요. 문제는 다음 명령에 있습니다.

ligne=`cat /var/log/svlog | grep  "\$day"`

, "\$day"는 고려하지 않습니다. 또한 이 "^\$day", 이 "$day" 및 이 "${day}"를 시도했지만 결과는 동일했습니다.

#!/bin/bash                 

echo SCRIPT-LOG             
echo enter date         
read day                   

ligne=`cat /var/log/svlog | grep  "\$day"`

$ligne >> log1.txt          

awk '{split($ligne,numbers," ")} END {for(n in numbers){ print numbers[n] }}'>lo


"Monit_Sub.sh" 11 lines, 211 characters

$ sudo ./Monit_Sub.sh 
SCRIPT-LOG
enter date
Apr 26
./Monit_Sub.sh: line 8: Apr: command not found

$ 

답변1

변화

ligne=`cat /var/log/svlog | grep  "\$day"`    

도착하다

ligne=$(grep "$day" /var/log/svlog)

$ligneto 의 콘텐츠를 제공하려면 awk다음을 사용하세요.

echo "$ligne" | awk ...

관련 정보