#!/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
pero recibo un error como
./count.sh ./count.sh: syntax error at line 10: `found=$' unexpected
Respuesta1
El problema es la referencia de variable sin comillas $line
en cualquiera de los dos casos.
found=$( grep M $line )
y/o
echo $count")" $line >> filesave.txt`
en ambos casos $line
debe ir entre comillas dobles:
found=$( grep M "$line" )
echo $count")" "$line" >> filesave.txt`
El ejemplo utiliza las líneas de log1.txt
como nombres de archivos, que pueden no ser los que usted desea. Si desea buscar log.txt
la cadena en cada línea leída M
, puede usar esto:
found="$( echo "$line" | grep M )"
Después de esto, $found
sería igual $line
sólo si $line
contuviera la letra M
.