1

问题是我的应用程序尝试将一行添加到/system/csc.

我需要一个函数来检查文件内是否有 X 行,如果它在那里,则不应添加该行,它还必须将该行放在文件中存在的另一行之前。

4

3 回答 3

3

您可以检查该行是否已存在,如果不存在则grep用于sed插入它:

grep -Fxq "foobar line" file || sed -i '/^context line$/i foobar line' file

如果在文件中尚未找到该行,这将在该行foobar line之前插入该行。context linefoobar line

或者,您可以使用以下方式完成所有操作sed

sed -i '/^foobar line$/d;/^context line$/i foobar line' file
于 2013-02-26T14:41:47.533 回答
0

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
于 2013-02-26T15:01:13.277 回答
0

尝试

grep -F "$yourLine" file.xml
于 2013-02-26T14:39:50.580 回答