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

推薦する

MySQLマスタースレーブ遅延現象と原理の詳細な分析

1. 現象早朝、オンライン テーブルにインデックスが追加されました。テーブル内のデータ量が大きすぎた...

JavaScript が重複したネットワークリクエストを防ぐ方法の例

序文開発中は、インターフェース要求の繰り返しによってさまざまな問題が発生することがよくあります。ネッ...

Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法

1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...

Vueは複数の画像の追加、表示、削除を実装します

この記事では、Vueで複数の画像を追加、表示、削除するための具体的なコードを参考までに紹介します。具...

Kubernetes の応用分野の概要

Kubernetes は、アプリケーションの移植性とハイブリッド クラウド/マルチクラウドの展開をサ...

Keepalived を使用して Nginx の自動再起動とデュアルアクティブ ホットスタンバイの高可用性を実現する方法について

目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

MYSQL トランザクション チュートリアル Yii2.0 マーチャント引き出し機能

序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...

Linuxでのcrontabの使い方と注意点の詳しい説明

Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...

mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

MySQL 8 Windows版 zipインストール手順(ダウンロードアドレス) 1. ZIPファイ...

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

html.cssオーバーフローの包括的な理解

html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...

MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル (Windows の場合)

この記事では、MySQL 8.0.15 winx64のインストールと設定方法を参考までに紹介します。...

Mysql 中国語ソートルールの説明

MySQL を使用する際、フィールドをソートしたりクエリしたりすることがよくあります。通常は、中国語...