嗨,我正在尝试使用sed将文本添加到文件的第一行
到目前为止,我尝试过
#!/bin/bash
touch test
sed -i -e '1i/etc/example/live/example.com/fullchain.pem;\' test
这不起作用
也尝试过
#!/bin/bash
touch test
sed -i "1i ssl_certificate /etc/example/live/example.com/fullchain.pem;" test
这似乎也不起作用
奇怪的是,当我尝试
#!/bin/bash
touch test
echo "ssl_certificate /etc/example/live/example.com/fullchain.pem;" > test
使用
cat test
时出现第一行文本但是只要我输入
sed -i "2i ssl_certificate_key /etc/example/live/example.com/privkey.pem;"
我看不到我在第2行上得到的信息,这是ssl_certificate_key/etc/example/live/example.com/privkey.pem;所以我的问题要总结
最佳答案
假设您有一个类似file
的代码:
one
two
然后追加到第一行:
$ sed '1 s_$_/etc/example/live/example.com/fullchain.pem;_' file
one/etc/example/live/example.com/fullchain.pem;
two
要在第一行之前插入:
$ sed '1 i /etc/example/live/example.com/fullchain.pem;' file
/etc/example/live/example.com/fullchain.pem;
one
two
或者,在第一行之后追加:
$ sed '1 a /etc/example/live/example.com/fullchain.pem;' file
one
/etc/example/live/example.com/fullchain.pem;
two
注意这些
1
表达式中的数字sed
-在sed
术语中称为the address。它告诉您接下来要在哪一行行 the command上进行操作。如果您的文件不包含您要寻址的行,则不会执行
sed
命令。这就是为什么如果文件为空,则无法在第1行插入/附加的原因。无需使用流编辑器来追加(到空文件),只需使用shell重定向
>>
即可:echo "content" >> file
关于linux - 如何使用sed将文本插入文件的第一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44894652/