Sed 用变量替换文本

Sed 用变量替换文本,sed,awk,grep,Sed,Awk,Grep,我想用一个变量替换这个值。由于sed中使用了单引号,以下内容不起作用 #!/bin/sh set myvarM='pqr' sed 's/:P03:M15/:P02:M1$myvarM/' mychange.txt > new_mychange.txt 我可以更改sed命令还是应该使用其他命令 #!/bin/sh myvarM='pqr' sed "s/:P03:M15/:P02:M1$myvarM/" mychange.txt > new_mychange.txt 顺便说一句,

我想用一个变量替换这个值。由于sed中使用了单引号,以下内容不起作用

#!/bin/sh
set myvarM='pqr'
sed 's/:P03:M15/:P02:M1$myvarM/' mychange.txt > new_mychange.txt
我可以更改sed命令还是应该使用其他命令

#!/bin/sh
myvarM='pqr'
sed "s/:P03:M15/:P02:M1$myvarM/" mychange.txt > new_mychange.txt
顺便说一句,要进行替换(即不创建新文件,而是更改原始文件),请执行以下操作:

sed -i '' "s/:P03:M15/:P02:M1$myvarM/" mychange.txt
这表示“使用空白作为增量后缀”-即写出与输入相同的文件名

awk -v val="$myvarM" '{sub(/:P03:M15/, ":P02:M1" val); print}' filename
顺便说一句,要进行替换(即不创建新文件,而是更改原始文件),请执行以下操作:

sed -i '' "s/:P03:M15/:P02:M1$myvarM/" mychange.txt
这表示“使用空白作为增量后缀”-即写出与输入相同的文件名

awk -v val="$myvarM" '{sub(/:P03:M15/, ":P02:M1" val); print}' filename
请注意,在伯恩类型的shell(“/bin/sh”)中,
set
命令设置位置参数。第一行将
$1
设置为值
myvarM='pqr'
——myvarM变量继续未设置


请注意,在伯恩类型的shell(“/bin/sh”)中,
set
命令设置位置参数。您的第一行将
$1
设置为值
myvarM='pqr'
——myvarM变量继续未设置。

改用
将允许变量扩展hanks,第二个问题是set!改用
将允许变量扩展hanks,第二个问题是set!