Shell Scripting поиск текста в текстовом файле - PullRequest
3 голосов
/ 01 марта 2011

Я пытаюсь проверить строку в текстовом файле.Если string1 не существует, тогда добавьте string1 после строки 2. Иначе string1 существует, ничего не делайте.

Вот что у меня есть:

if [ string1 does not exisit ]  //Stuck at this
then
sed '/string2/ a\ string1' myfile
fi

Также как включить символ "/"в моих строках?

Ответы [ 2 ]

4 голосов
/ 01 марта 2011
if grep -qs string1 myfile
then
    sed '/string1/ a\ string2' myfile
fi

Однако вы можете пропустить if, поскольку sed в любом случае проверяет наличие строки.Таким образом, вы читаете файл только один раз, а не дважды.Используйте sed -i, если вы хотите, чтобы изменение было внесено в файл на месте.

0 голосов
/ 01 марта 2011

Вы можете использовать grep, например, так:

$(grep -q "string1" myfile)
if [ $? -eq 1 ]; then
    sed '/string1/ a\ string2' myfile
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...