#!/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
, M
то вы можете использовать это:
found="$( echo "$line" | grep M )"
После этого $found
будет равно $line
только если $line
содержит букву M
.