我正在尝试在文本文件中查找字符串。如果字符串1不存在,则在字符串2后添加字符串1。否则,如果字符串1存在,则不进行任何操作。
以下是我目前的代码:
if [ string1 does not exisit ] //Stuck at this
then
sed '/string2/ a\ string1' myfile
fi
同时,我如何在字符串中包含“/”字符?
if grep -qs string1 myfile
then
sed '/string1/ a\ string2' myfile
fi
然而,你可以跳过if
语句,因为sed
已经在测试字符串是否存在。这样,你只需要一次读取文件,而不是两次。如果你想让修改直接作用于文件中,请使用sed -i
。
你可以使用 grep
,例如像这样:
$(grep -q "string1" myfile)
if [ $? -eq 1 ]; then
sed '/string1/ a\ string2' myfile
fi
-eq 1
不会通过,因为退出代码没有输出,它被保存在 $?
中。 - Dennis Williamson