2015-01-21 79 views
0

我想從使用sed的文件中刪除幾行(即1天以前),但它在執行腳本時會給出錯誤。使用sed清除文件內容的腳本

什麼可能導致上述錯誤?任何人都可以請幫忙?

~]# ./test.sh 

Jan 20 
36 
sed: -e expression #1, char 3: unexpected `,' 

下面是腳本:

month=$(date --date="1 day ago" | cut -d " " -f2,3) 

echo $month 

line=$(grep -n "$month" test.log | cut -d : -f 1 | tail -1) 

echo $line 

if [ ! -z "$line" -a "$line" != " " ]; 

then 

sed -i '1,"$line"d' test.log 

#echo "sed -i '1,"$line"d' test.log" 

else 

exit 

fi 
+0

您可能要查找報價和變量是如何工作的。 – 2015-01-21 08:29:33

回答

3

我建議你改變的sed行,

sed -i '1,'"$line"'d' test.log 
     ^ ^  
      |  | 
+0

或者你可以把它全部放在雙重qoutes。 – 2015-01-21 09:42:06