如果该文件中还没有这个确切的数据,那么用herestring将一行数据附加到文件末尾的“优雅”单行方法是什么?
这是我的这里字符串附加模式:
cat >> /var/www/html/myFile <<< "myOutput"
答案1
s="myOutput"; grep -Fxqe "$s" < "$file" || printf "%s\n" "$s" >> "$file"
答案2
假设您希望“myOutput”成为文件最后一行的整行:
s="myOutput"; sed '$ {/^'"$s"'$/b; s/$/\n'"$s"'/}' file
s="myOutput"
设置模式以匹配
sed
使用 sed
$ {…}' file
在文件的最后一行
/^'"$s"'$/b
将模式作为整行进行匹配,如果匹配则分支到结尾。
s/$/\n'"$s"'/
如果不匹配,则将模式附加到末尾行。
如果文件已在最后一行以外的位置包含“myOutput”数据,则这将在文件末尾添加它的另一个副本。
答案3
在下面的脚本中,将检查完整的最后一行变量 i 是否存在,如果不存在,它将在文件的最后一行插入变量 i 。
经测试,效果很好
#!bin/bash
i="praveen"
f=$(sed -n '$p' p.txt | sed -n "/^$i$/p")
if [[ -z $f ]]
then
sed "\$s/.*/&\n$i/g" p.txt
else
echo "output exsists"
fi