附加到受保护的文件而不创建新行

时间:2019-10-18 05:01:26

标签: bash

我正在尝试制作一个bash脚本,除其他外,该脚本将字符串“ fastboot noswap ro”附加到/boot/cmdline.txt的末尾。

起初,我正在尝试sudo echo " fastboot noswap ro" >> /boot/cmdline.txt,但遭到拒绝。

我了解到,对于受保护的文件,最好的方法是echo ' fastboot noswap ro' | sudo tee -a /boot/cmdline.txt

这行得通,但是它使它从新行开始。在tee手册页上我找不到任何有关添加而不插入新行的内容。

如何在不创建新行的情况下附加到受保护的文件?

2 个答案:

答案 0 :(得分:2)

不能。换行符已经存在,您不能通过追加来删除它们。

相反,您必须用更改后的行替换文件的内容。

最简单的方法可能是sed

sudo sed -i -e 's/$/ fastboot noswap ro/' /boot/cmdline.txt

paste

paste /boot/cmdline.txt <(echo fastboot noswap ro) | sudo tee /boot/cmdline.txt

答案 1 :(得分:0)

尝试一下:

echo -n ' fastboot noswap ro' | sudo tee -a /boot/cmdline.txt
  

男人回声说

    Options:
      -n    do not append a newline