用於計算出現次數的腳本中的錯誤

用於計算出現次數的腳本中的錯誤
#!/bin/sh
count=1
while read line
do
  found=$( grep M $line )
  if [ "$found" ]; then
    echo $count")" $line >> filesave.txt
  fi
  count=$((count+1))
done < log1.txt

但我收到了類似的錯誤

./count.sh ./count.sh: syntax error at line 10: `found=$' unexpected

答案1

問題是未加引號的變數$line引用

found=$( grep M $line )

和/或

echo $count")" $line >> filesave.txt`

這兩種情況都$line應該用雙引號引起來:

found=$( grep M "$line" )
echo $count")" "$line" >> filesave.txt`

這個範例使用以下行log1.txt作為文件名,這可能不是您想要的。如果您想在讀取的每一行中搜尋log.txtstring M,那麼您可以使用以下命令:

found="$( echo "$line" | grep M )"

此後,僅當包含字母時才$found等於。$line$lineM

相關內容