#!/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.txt
string M
,那麼您可以使用以下命令:
found="$( echo "$line" | grep M )"
此後,僅當包含字母時才$found
等於。$line
$line
M