shell 检查文件中是否存在行

vyswwuz2  于 2022-11-16  发布在  Shell
关注(0)|答案(4)|浏览(318)

问题是我的应用程序试图在/system/csc中向现有的xml文件添加一行。
我需要一个函数来检查文件中是否有X行,如果有,则不应添加该行,还必须将该行放在文件中存在的另一行之前。

bvuwiixz

bvuwiixz1#

您可以使用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
3gtaxfhh

3gtaxfhh2#

尝试

grep -F "$yourLine" file.xml
cyvaqqii

cyvaqqii3#

awk sum up multiple files show lines which does not appear on both sets of files在此页上检查我的答案(我自己问题的最后一个答案)我正在使用艾德,在找到需要添加条目的行后,我使用典型的vi命令在行号后添加条目。
如果没有,可以在对文件中的string执行grep后使用相同的脚本

grep pattern $file > /dev/null
if  [ $? = 0 ]; then
 echo "found"
else
run_ed_function
fi
u59ebvdq

u59ebvdq4#

检查字符串是否等于整行

FILE="./myfile"
STRING="myString"

if grep -x ^$STRING.$ $FILE; then
  echo 'Found'
else
  echo 'Not Found'
fi

在这种情况下,代码将匹配“myString”,但不匹配“Hello myString”

相关问题