如何在 SED 命令中使用变量 (bash)
How to use variables in SED command (bash)
我有这 3 个 sed 命令:
sed -i '10,$s/-.*/-$LOWX:HIGHX+$HIGHX]/' plot.p
sed -i '11,$s/+.*/+$HIGHY]/' plot.p
sed -i '14,$s/+.*/+$HIGHY/' plot.p
它应该转到第一个值(即 10、11、14)表示的行并替换指定字符(即 -、+)之后的文本。
目前,我的 sed 命令无法识别变量($LOWX、$HIGHX 和 $HIGHY),它只是用文字“$LOWX”进行替换。
如何让我的 sed 命令识别其中的变量?
我看到类似问题的其他答案说要使用双引号,但这导致我的 sed 命令被误解,因此它不能 运行。
我的输出:
set xr[LOWX-$LOWX:HIGHX+$HIGHX]
set yr[0:HIGHY+$HIGHY]
set ytics 0,1,HIGHY+$HIGHY
期望的输出:
set xr[LOWX-2:HIGHX+2]
set yr[0:HIGHY+1]
set ytics 0,1,HIGHY+1
这是否为您提供了您想要的输出?
sed -i "10,$s/-.*/-$LOWX:HIGHX+$HIGHX]/" plot.p
sed -i "11,$s/+.*/+$HIGHY]/" plot.p
sed -i "14,$s/+.*/+$HIGHY/" plot.p
单引号可以。以我的作为快速参考:
LAUNCH_APP="./xxx/launch-app.sh"
OLD_PROXY="xx-proxy.uds"
num=$(sed -n "/$OLD_PROXY/=" "$LAUNCH_APP")
sed -i ''${num}'s/^/#/' "$LAUNCH_APP"
我有这 3 个 sed 命令:
sed -i '10,$s/-.*/-$LOWX:HIGHX+$HIGHX]/' plot.p
sed -i '11,$s/+.*/+$HIGHY]/' plot.p
sed -i '14,$s/+.*/+$HIGHY/' plot.p
它应该转到第一个值(即 10、11、14)表示的行并替换指定字符(即 -、+)之后的文本。
目前,我的 sed 命令无法识别变量($LOWX、$HIGHX 和 $HIGHY),它只是用文字“$LOWX”进行替换。
如何让我的 sed 命令识别其中的变量?
我看到类似问题的其他答案说要使用双引号,但这导致我的 sed 命令被误解,因此它不能 运行。
我的输出:
set xr[LOWX-$LOWX:HIGHX+$HIGHX]
set yr[0:HIGHY+$HIGHY]
set ytics 0,1,HIGHY+$HIGHY
期望的输出:
set xr[LOWX-2:HIGHX+2]
set yr[0:HIGHY+1]
set ytics 0,1,HIGHY+1
这是否为您提供了您想要的输出?
sed -i "10,$s/-.*/-$LOWX:HIGHX+$HIGHX]/" plot.p
sed -i "11,$s/+.*/+$HIGHY]/" plot.p
sed -i "14,$s/+.*/+$HIGHY/" plot.p
单引号可以。以我的作为快速参考:
LAUNCH_APP="./xxx/launch-app.sh"
OLD_PROXY="xx-proxy.uds"
num=$(sed -n "/$OLD_PROXY/=" "$LAUNCH_APP")
sed -i ''${num}'s/^/#/' "$LAUNCH_APP"