我在檔案中有一個鍵串列:
FOO
BAR
BAZ
我正在嘗試構建一個 sed 命令來替換每一行:
FOO=$FOO
BAR=$BAR
BAZ=$BAZ
右側是具有該名稱的 env 變數的值。例如,設定環境變數:
export FOO=1
export BAR=2
export BAZ=3
運行 sed 后,檔案應該是:
FOO=1
BAR=2
BAZ=3
我試過這些:
sed -i 's/^\(.*\)$/\1=$\1/g'sed -i "s/^\(.*\)$/\1=$\1/g"sed -i s/^\(.*\)$/\1="$\1"/g'
以及其他一些變體。問題顯然在于捕獲組如何轉義,但我不知道如何解決。
uj5u.com熱心網友回復:
您無法以您嘗試的方式訪問 sed 中的環境變數,但使用 awk 非常簡單:
awk '{ print $0 in ENVIRON ? $0"="ENVIRON[$0] : $0 } FILE >FILE.new \
&& mv FILE.new FILE || { echo oops; rm FILE.new; }
uj5u.com熱心網友回復:
這可能對你有用(GNU sed):
sed 's/.*/echo "&=$&"/e' file
在替換命令上使用匹配回參考&和e評估標志。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/363380.html
上一篇:如何在bashlinux中使用管道符號或$符號來參考?
下一篇:定影器輸出的尾隨“m”是什么?
