我有這 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
uj5u.com熱心網友回復:
這會給你想要的輸出嗎?
sed -i "10,\$s/-.*/-$LOWX:HIGHX $HIGHX]/" plot.p
sed -i "11,\$s/ .*/ $HIGHY]/" plot.p
sed -i "14,\$s/ .*/ $HIGHY/" plot.p
uj5u.com熱心網友回復:
單引號將起作用。以我的作為快速參考:
LAUNCH_APP="./xxx/launch-app.sh"
OLD_PROXY="xx-proxy.uds"
num=$(sed -n "/$OLD_PROXY/=" "$LAUNCH_APP")
sed -i ''${num}'s/^/#/' "$LAUNCH_APP"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434305.html
上一篇:bashfind命令,路徑為要求
