我想按日期过滤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 ...