Bash脚本将多行替换为新的行集

Bash脚本将多行替换为新的行集,bash,Bash,对于bash脚本,我有200多个bash脚本文件,我想创建一个bash脚本,用一组新的行替换某些代码行。由于大量文件无法逐个执行此操作,因此可能会在该脚本中创建一个包含所有文件目录路径的列表,并在运行时替换所有文件中的路径 #!/bin/bash #config FROM="logs@example.com" FROMNAME="LOGS" USER="diago" PASS="*****" APIKEY="

对于bash脚本,我有200多个bash脚本文件,我想创建一个bash脚本,用一组新的行替换某些代码行。由于大量文件无法逐个执行此操作,因此可能会在该脚本中创建一个包含所有文件目录路径的列表,并在运行时替换所有文件中的路径

#!/bin/bash
#config
FROM="logs@example.com"
FROMNAME="LOGS"
USER="diago"
PASS="*****"
APIKEY="*****"
***
*****
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer '${APIKEY} \
--header "Content-Type: application/json" \
--data '{"personalizations": [{"to": [{"email": "'${TO}'","name": 
"'${TONAME}'"}]}],"from": {"email": "'${FROM}'","name": 
"'${FROMNAME}'"},"subject": "'${SUBJECT}'","content": [{"type": 
"text/html", "value": "'${BODYHTML}'"}]}'
****
****
这里,我想将特定的行--header“Content-Type:application/json”\替换为--header“Content-Type:application/json”[仅此行的双引号到单引号]

c
命令适用于此。请参见此示例:

$cat文件
第1行
线富
...
线棒
第N行
$
$cat foo.sh
sed-e'/line foo/,/line bar/c\
新线富\
...\
...\
新线条
"档案"
$
$bash foo.sh
第1行
新线富
...
...
新线条
第N行
$

您能与我们分享一些更有用的资源吗?加上这是一个文件权限(foo.sh)?在哪里我可以包括所有在终端中工作和打印更改的文件路径?(如路径列表?),但是如何直接在bash文件上进行这些更改?更新了答案并添加了sed手册的链接。要就地编辑文件,请使用
-i
(小心)。我有一个问题,如果你看上面的脚本,它包含像${APIKEY},${to}这样的变量,所以当我用新行替换整个curl时,它会排除${APIKEY}的实际值,等等。。但是这些值在脚本本身是硬编码的,而且是动态的,如何使其工作?我不明白你的意思。你能给我个建议吗?