3 回答

TA貢獻1982條經驗 獲得超2個贊
然后使用awk對該行進行grepping如何
version=$(awk -F "=" '/database_version/ {print $2}' parameters.ini)

TA貢獻1818條經驗 獲得超8個贊
您可以通過以下方式使用bash本機解析器來解釋ini值:
$ source <(grep = file.ini)
樣本文件:
[section-a]
var1=value1
var2=value2
IPS=( "1.2.3.4" "1.2.3.5" )
要訪問變量,只需打印它們:echo $var1。您也可以使用上面(echo ${IPS[@]})所示的數組。
如果您只想要一個值,只需grep即可:
source <(grep var1 file.ini)
這很簡單,因為您不需要任何外部庫來解析數據,但是它有一些缺點。例如:
如果在=(變量名和值)之間有空格,則必須先修剪空格,例如
$ source <(grep = file.ini | sed 's/ *= */=/g')
或者,如果您不關心空格(包括中間的空格),請使用:
$ source <(grep = file.ini | tr -d ' ')
要支持;評論,請將其替換為#:
$ sed "s/;/#/g" foo.ini | source /dev/stdin
不支持這些部分(例如,如果您具有[section-name],則必須如上所示將其過濾掉,例如grep =),對于其他意外錯誤也是如此。
如果你需要閱讀在特定的部分具體值,使用grep -A,sed,awk或ex)。
例如
source <(grep = <(grep -A5 '\[section-b\]' file.ini))
注意:在哪里-A5是本節中要讀取的行數。替換source為cat進行調試。
如果您有任何解析錯誤,請通過添加以下內容來忽略它們: 2>/dev/null
- 3 回答
- 0 關注
- 1282 瀏覽
添加回答
舉報