Shell Scripting在文本文件中查找文本

时间:2011-03-01 17:27:55

标签: string shell scripting sed

我正在尝试检查文本文件中的字符串。如果string1不存在,则在字符串2之后添加string1。否则string1不执行任何操作。

这是我到目前为止所拥有的:

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

如何在字符串中包含“/”字符?

2 个答案:

答案 0 :(得分:4)

if grep -qs string1 myfile
then
    sed '/string1/ a\ string2' myfile
fi

但是,您可以跳过if,因为sed正在测试是否存在字符串。这样,你只需要读取一次文件而不是两次。如果您希望对文件进行就地更改,请使用sed -i

答案 1 :(得分:0)

您可以使用grep,例如:

$(grep -q "string1" myfile)
if [ $? -eq 1 ]; then
    sed '/string1/ a\ string2' myfile
fi