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)
$ligne
to 의 콘텐츠를 제공하려면 awk
다음을 사용하세요.
echo "$ligne" | awk ...