bash脚本将文本附加到文件的第一行

Ryu*_*iya 5 linux bash raspbian

我想使用bash脚本将文本添加到文件第一行的末尾.该文件是/etc/cmdline.txt,它不允许换行并需要空白分隔的新命令,因此我想要添加的文本需要在第一行.

到目前为止我得到的是:

line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
  printf '%s' "$line\n" >>"$file"
fi
Run Code Online (Sandbox Code Playgroud)

但是在第一行换行后附加文本,结果是错误的.我要么需要修剪文件竞争,添加我的文本和换行符,或者以某种方式将它添加到文件的第一行而不是以某种方式触及其余部分,但是我对bash脚本的了解不足以在这里找到解决方案,并且所有我在网上找到的例子在文件中添加每行的开头/结尾,而不仅仅是第一行.

Sky*_*net 16

sed命令将添加123到文件第一行的末尾.

sed ' 1 s/.*/&123/' yourfile.txt
Run Code Online (Sandbox Code Playgroud)

sed '1 s/$/ 123/' yourfile.txt
Run Code Online (Sandbox Code Playgroud)

要将结果附加到同一文件,您必须使用-iswitch:

sed -i ' 1 s/.*/&123/' yourfile.txt
Run Code Online (Sandbox Code Playgroud)

  • 怎么样'sed'1 s/$/123 /'` =) (3认同)