问题是我的应用程序尝试将一行添加到/system/csc
.
我需要一个函数来检查文件内是否有 X 行,如果它在那里,则不应添加该行,它还必须将该行放在文件中存在的另一行之前。
您可以检查该行是否已存在,如果不存在则grep
用于sed
插入它:
grep -Fxq "foobar line" file || sed -i '/^context line$/i foobar line' file
如果在文件中尚未找到该行,这将在该行foobar line
之前插入该行。context line
foobar line
或者,您可以使用以下方式完成所有操作sed
:
sed -i '/^foobar line$/d;/^context line$/i foobar line' file
awk sum up multiple files show lines which does not appear on both sets files check my answer on this page (the last answer to my own question) 我正在使用 ed 并在找到需要添加条目的行后我使用典型的 vi 命令在行号后面添加条目。
如果没有,您可以在对文件中的字符串执行 grep 后使用相同的脚本
grep pattern $file > /dev/null
if [ $? = 0 ]; then
echo "found"
else
run_ed_function
fi
尝试
grep -F "$yourLine" file.xml