问题是我的应用尝试在/system/csc
中的现有xml文件中添加一行。
我需要一个函数来检查文件里面是否有X行,如果它在那里就不应该添加行,它还必须将行放在文件中存在的另一行之前。
答案 0 :(得分:1)
您可以检查该行是否已存在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
答案 1 :(得分:0)
试
grep -F "$yourLine" file.xml
答案 2 :(得分:0)
awk sum up multiple files show lines which does not appear on both sets of files 检查我在这个页面上的答案(我自己的问题的最后一个答案)我正在使用ed,在找到需要添加条目的行后,我使用典型的vi命令在行号后面添加条目。
如果不是
,则可以在文件中为字符串执行grep后使用相同的脚本grep pattern $file > /dev/null
if [ $? = 0 ]; then
echo "found"
else
run_ed_function
fi