91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下通過sed命令對kv方式的配置文件進行修改

發布時間:2020-10-08 01:28:38 來源:腳本之家 閱讀:189 作者:mrr 欄目:服務器

sed是unix下的面向字符流的編輯器,即stream editor, 它是面向行的,以行為單位進行處理,同時,sed是非交互式的,一旦執行便要處理完整個文件。

日常后臺服務配置文件多以key-value的方式存在,例如ini文件、toml文件或一些自定義配置文件,當我們某些情況下需要編寫自動化腳本對配置文件進行更改的時候,我們可以通過shell的sed命令進行正則匹配快速修改,十分簡單快捷,減少很多“高級語言”編寫的繁瑣,下面主要列出兩種比較常見的配置變更情況和命令參考例子:

用于測試的配置文件 test.conf

$ cat test.conf 
max.connections = 100
test.log_path = "/tmp/test.log"
fsync=on

值帶引號的方式

#!/bin/bash
CONF=test.conf
set_key_value() {
  local key=${1}
  local value=${2}
  if [ -n $value ]; then
    #echo $value
    local current=$(sed -n -e "s/^\($key = '\)\([^ ']*\)\(.*\)$/\2/p" $CONF) # value帶單引號
    if [ -n $current ];then
      echo "setting $CONF : $key = $value"
      value="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${key}\([ ]*\)=.*|${key} = '${value}'|" ${CONF}
    fi
  fi
}
set_key_value "max.connections" "1024"
set_key_value "test.log_path" "/data/logs/test.log"

值不帶引號的方式

CONF=test.conf
set_key_value() {
  local key=${1}
  local value=${2}
  if [ -n $value ]; then
    #echo $value
    local current=$(sed -n -e "s/^\($key = \)\([^ ']*\)\(.*\)$/\2/p" $CONF) # value不帶單引號
    if [ -n $current ];then
      echo "setting $CONF : $key = $value"
      value="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${key}\([ ]*\)=.*|${key} = ${value}|" ${CONF}
    fi
  fi
}
set_key_value "fsync" "off"

總結

以上所述是小編給大家介紹的Linux下通過sed命令對kv方式的配置文件進行修改,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青海省| 阜平县| 万年县| 永仁县| 陵川县| 新营市| 阿合奇县| 区。| 厦门市| 涿州市| 南部县| 青州市| 淳化县| 东港市| 东源县| 西藏| 威海市| 白银市| 那坡县| 赫章县| 秀山| 安图县| 安溪县| 武城县| 柳州市| 鹿邑县| 砀山县| 乌拉特中旗| 油尖旺区| 富平县| 永兴县| 上虞市| 衡水市| 思茅市| 丹巴县| 玉山县| 中宁县| 靖安县| 鲜城| 慈溪市| 和田市|