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 ...

おすすめ記事