Проверьте, существует ли входная строка в файле

Вы должны прочитать string1, что мне делать? Вот мой код:

#!/bin/sh
echo "Enter your sting: "
read read string1
if [ grep -q $string1 file.txt ];then
   echo "Found it"
else
   echo "Sorry this string not in file"
fi
exit 0
1
задан 27 March 2016 в 13:15

1 ответ

Я думаю, что всегда лучше хранить результат, количество совпадений в этом случае, в переменной.

Тем не менее, у вас есть 2 варианта, используйте grep -c для подсчета согласованных строк [!d1 ]

count=$(grep -c "$string1" file.txt)

Или соедините согласованные строки с wc с grep -o (- только совпадения)

count=$(grep -o "$string1" file.txt | wc -l)

Это будет полный скрипт со вторым вариантом [!d3 ]

#!/bin/sh
echo "Enter your string: "
read string1
count=$(grep -o "$string1" file.txt | wc -l)
if [ $count != 0 ];then
   echo "Found it ($count times)"
else
   echo "Sorry this string not in file"
fi
exit 0

Кроме того, вы написали read дважды.

0
ответ дан 23 May 2018 в 12:33

Другие вопросы по тегам:

Похожие вопросы: