我使用curl抓取https://api.wordpress.org/secret-key/1.1/salt/的内容并将其放到bash变量中。我想将此文本块插入到特定行号的文件中 - 10
#!/bin/bash
salts=$(curl -s https://api.wordpress.org/secret-key/1.1/salt/)
sed -i '10i '"$salts"'' myfile.php
然而我一直收到错误
sed:-e expression#1,char 102:命令后的额外字符
我认为使用curl返回的有效负载中可能有回车字符,但我不确定。我尝试使用tr
将其替换为\n
,但我不确定如何在这种情况下使用它。
我查看了多个现有questions,但我不能让他们在我的情况下工作。我不必为此使用sed。
答案 0 :(得分:2)
使用awk
awk -v "s=$salts" 'NR==10{print s} 1' file
你也可以组合头尾
echo -e "$( head -9 file )\n$salts\n$( tail -n +10 file )"
它们似乎适用于包含许多特殊字符的变量。