Linuxでkv設定ファイルを変更するにはsedコマンドを使用します

Linuxでkv設定ファイルを変更するにはsedコマンドを使用します

sed は Unix の文字ストリーム エディタ、つまりストリーム エディタです。行指向であり、行単位で処理します。同時に、sed は非対話型であり、一度実行するとファイル全体を処理します。

日常のバックグラウンド サービス構成ファイルは、ini ファイル、toml ファイル、カスタム構成ファイルなど、ほとんどがキーと値の形式です。場合によっては、構成ファイルを変更するための自動スクリプトを記述する必要がある場合、シェルの sed コマンドを使用して、定期的なマッチングと迅速な変更を実行できます。これは非常にシンプルで高速であり、多くの「高級言語」で記述する手間が軽減されます。次に、主に 2 つの一般的な構成変更とコマンド リファレンスの例を示します。

テスト用の設定ファイル test.conf

$ cat テスト.conf 
最大接続数 = 100
test.log_path = "/tmp/test.log"
fsync=オン

値を引用する方法

#!/bin/bash
設定 = test.conf
set_key_value() {
  ローカルキー=${1}
  ローカル値=${2}
  [ -n $値 ]の場合;
    #echo $値
    local current=$(sed -n -e "s/^\($key = '\)\([^ ']*\)\(.*\)$/\2/p" $CONF) # 一重引用符付きの値if [ -n $current ];then
      echo "$CONF の設定: $key = $value"
      値="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${キー}\([ ]*\)=.*|${キー} = '${値}'|" ${CONF}
    フィ
  フィ
}
set_key_value "最大接続数" "1024"
set_key_value "test.log_path" "/data/logs/test.log"

引用符なしの値

設定 = test.conf
set_key_value() {
  ローカルキー=${1}
  ローカル値=${2}
  [ -n $値 ]の場合;
    #echo $値
    local current=$(sed -n -e "s/^\($key = \)\([^ ']*\)\(.*\)$/\2/p" $CONF) # 一重引用符なしの値if [ -n $current ];then
      echo "$CONF の設定: $key = $value"
      値="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${キー}\([ ]*\)=.*|${キー} = ${値}|" ${CONF}
    フィ
  フィ
}
set_key_value "fsync" "オフ"

要約する

上記は、Linux で sed コマンドを使用して kv 構成ファイルを変更する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux sed コマンドの詳細な説明 (推奨)
  • sedコマンドを使用して、キーワードがある行を検索し、その前の最初の文字を削除します。
  • Sedコマンドと正規表現メタ文字の使用方法の詳細な説明
  • sed コマンドを使用して文字列を置換する Linux チュートリアル
  • 一定期間から現在までのシステムログのsedコマンドを表示する
  • 1日1シェルコマンド Linuxテキストコンテンツ操作シリーズ - sedコマンド詳細説明
  • Linux での sed コマンドの使用
  • Linuxにおけるsedコマンドの使い方と注意点のまとめ
  • Linuxでよく使われるsedコマンド
  • sed コマンドを使用してファイルの特定の行を効率的に削除する方法

<<:  mysql5.7.18 のインストール時にエントリが見つからない問題の解決方法

>>:  Mac OS10.12 に mysql5.7.18 をインストールするチュートリアル

推薦する

JavaScript インタビュー: 配列の平坦化メソッドを実装する方法

目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...

HTMLで細い線のテーブルを作成する簡単な例

この細線の表を作成する方法については、Baidu で検索すると、表に対して border="...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

HTML と JavaScript を使用してローカル メディア (ビデオとオーディオ) ファイルを再生する方法

まず、セキュリティ上の理由から、JavaScript はローカル リソース ファイルに直接アクセスで...

CSS3+HTML5+JSでブロックの縮小・拡大アニメーション効果を実現

最近、あるプロジェクトに取り組んでいたとき、自分のプロジェクトでは CSS3 のアニメーション技術を...

type=fileファイル変更フォームの名前が正常にエコーされない問題を解決

easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...

知っておくべき JS 配列削減の高度な使い方 25 選

序文Reduce は ES5 で追加された新しい従来の配列メソッドの 1 つです。forEach、f...

IE6 で JS エラーが発生し、CSS が適用されない HTML エンコードの問題の解決策

テストでは、ページ定義がutf-8でエンコードされている場合、 js ファイルに中国語などのマルチバ...

nodejsとyarnをインストールし、Taobaoソースプロセスレコードを構成する

目次1. nodejsをダウンロードする2. ダブルクリックしてインストール3. グローバル npm...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

MySql 8.0.16 バージョンのインストールでは、「UTF8B3」ではなく「UTF8B4」が使用されるように求められます。

MySQL 8.0.16 にインストールする場合、「UTF8B3」ではなく「UTF8B4」が使用さ...

Linux bzip2 コマンドの使用

1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...

MySQL はどのようにしてマスターとスレーブの同期を実現するのでしょうか?

マスタースレーブ同期 (マスタースレーブレプリケーションとも呼ばれる) は、マスタースレーブデータの...