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

推薦する

CSSアニメーションを途中で止めて姿勢を維持する方法

序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...

MySQL 5.7.17無料インストール版のインストールと設定

MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

MySQL サーバー ログイン エラー ERROR 1820 (HY000) の解決方法

障害サイト: MySQL サーバーにログインし、どのコマンドを実行してもこのエラーが発生します my...

MySQL での select、distinct、limit の使用

目次1. はじめに2. 選択2.1 単一列のクエリ2.2 複数の列のクエリ2.3 すべての列をクエリ...

アイデアコンパイラvueインデントエラー問題シナリオの分析

プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

HTML テーブル_Powernode Java アカデミー

HTMLで表を描くには、表タグを使用します。 trは行を意味しますtdは列を示すth はテーブ...

HTML4とHTML5の違い: 入力にフォーカス実装コードを追加する方法

html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

Linux での grep コマンドの使い方の詳細な説明

Linux grep コマンドLinux の grep コマンドは、ファイル内の条件を満たす文字列を...

データベースSQL SELECTクエリの仕組み

私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...

CSS のインライン スタイルに変換するソリューション (css-inline)

シーンについて話すメールを送信サードパーティのウェブサイトにHTMLを埋め込む他の編集者の記事をコピ...

Vue3+スクリプト設定+ts+Vite+Volarプロジェクト

目次Viteを使用してvue + tsプロジェクトを作成するVue 3の3つの構文オプションAPIコ...