Как найти выражение в файле из скрипта bash? - PullRequest
1 голос
/ 13 марта 2010

У меня есть скрипт bash. Мне нужно посмотреть, существует ли в файле «текст», и что-то сделать, если он существует.

Ответы [ 6 ]

4 голосов
/ 13 марта 2010

Если вам нужно выполнить команду для всех файлов, содержащих текст, вы можете объединить grep с xargs. Например, это удалит все файлы, содержащие «yourtext»:

grep -l "yourtext" * | xargs rm

Для поиска одного файла используйте if grep ...

if grep -q "yourtext" yourfile ; then
  # Found
fi
2 голосов
/ 13 марта 2010

Что-то вроде следующего будет делать то, что вам нужно.

grep -w "text" file > /dev/null

if [ $? -eq 0 ]; then
   #Do something
else
   #Do something else
fi
1 голос
/ 13 марта 2010

Вы можете поместить grep в оператор if и использовать флаг -q, чтобы заставить его замолчать.

if grep -q "text" file; then
    :
else
    :
fi
1 голос
/ 13 марта 2010

grep ваш друг здесь

0 голосов
/ 14 марта 2010

просто используйте оболочку

while read -r line
do
  case "$line" in
   *text* ) 
        echo "do something here"
        ;;
   * )  echo "text not found"
  esac
done <"file"
0 голосов
/ 13 марта 2010

cat <file> | grep <"text"> и проверьте код возврата с помощью test $?

Проверьте отлично: Расширенное руководство по написанию сценариев Bash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...