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 をインストールするチュートリアル

推薦する

乱数、文字列、日付、検証コード、UUIDを生成するMySQLメソッド

目次乱数を生成する0から1までの乱数を生成する指定された範囲内で乱数を生成します6桁のモバイル認証コ...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

Vueでaxiosをカプセル化する方法

目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...

Vueはダイアログのカプセル化を実装します

目次Vue2 ライティングVue3プラグインのバージョンの記述Vue3 動的コンポーネントの記述書き...

MySQL オンライン DDL ツール gh-ost 原理分析

目次1. はじめに1.1 原則1.2 プロセス1.3 特徴1.4 githubアドレス2. テスト環...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

Quill エディタでカスタム HTML レコードを挿入する詳細な例

もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...

MySQL json 形式のデータクエリ操作

デフォルトのテーブル名はbase_dataで、json列名はjson_valueです。 json_v...

JavaScript データ型変換の例 (他の型を文字列、数値型、ブール型に変換する)

序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...

CSS3 引用のソースと出典をマークする方法

疫病のせいで家にこもりきりで、頭がおかしくなりそうなので、パソコンを起動して頭を働かせてみました。今...

Vue はシームレスなカルーセル効果 (マーキー) を実現します

この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを例として紹介します。...

ウェブページの最も基本的なコード

◆お気に入りに追加例示するクリックすると、ブラウザのお気に入りメニューにウェブサイトが追加されます...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決策

この記事では、主に、IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決...