#!/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