[解決済み】LinuxのシェルスクリプトからYAMLファイルをパースする方法は?
2022-03-31 15:13:09
質問
私は、技術者でないユーザーができるだけ簡単に編集できる構造化された設定ファイルを提供したいので、YAMLを使用したいと思いました(残念ながら、それはファイルでなければなりません)。しかし、Unixシェルスクリプトからこれをパースする方法が見つからない。
どのように解決しますか?
私のユースケースは、この元記事の質問と全く同じかどうかは分かりませんが、間違いなく類似しています。
YAMLをbashの変数として取り込む必要があります。YAMLは1レベル以上の深さになることはありません。
YAMLはこのような感じです。
KEY: value
ANOTHER_KEY: another_value
OH_MY_SO_MANY_KEYS: yet_another_value
LAST_KEY: last_value
ライクアディスを出力する。
KEY="value"
ANOTHER_KEY="another_value"
OH_MY_SO_MANY_KEYS="yet_another_value"
LAST_KEY="last_value"
この行で出力を実現しました。
sed -e 's/:[^:\/\/]/="/g;s/$/"/g;s/ *=/=/g' file.yaml > file.sh
-
s/:[^:\/\/]/="/g
見つける:
で置き換えて="
を無視し://
(URLの場合) -
s/$/"/g
を追加します。"
を各行の末尾に追加します。 -
s/ *=/=/g
の前にあるすべてのスペースを削除します。=
関連
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] テキストファイルから、特定の文字列を含むすべての行を削除するにはどうすればよいですか?
-
[解決済み] YAML の文字列を複数行に渡って分割するには?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] PythonでYAMLファイルをパースするには?
-
[解決済み】YAMLでブロックコメントを行うには?
-
[解決済み】シェルスクリプトの終了時にバックグラウンドプロセスやジョブを強制終了するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"ERROR. "を取得。ZooKeeperからマスターアドレスを取得できない。znode data == null" Hbaseシェル使用時
-
[解決済み] のコマンドがzshで見つからない [閉店]。
-
[解決済み] date: 余分なオペランド %d' エラー
-
文字列 null with space エラー: 二項演算子が期待されています。
-
[解決済み] Dockerコンテナの強制終了
-
[解決済み] Unixシェルスクリプトは、スクリプトファイルが存在するディレクトリを見つけることができますか?
-
[解決済み] xargsがスペースを含むファイル名を扱えるようにする
-
[解決済み】sedを使ったマッチの後の行の挿入
-
[解決済み] UNIXのシェルスクリプトで「#!/bin/sh」という行がありますが、これはどういう意味ですか?
-
[解決済み] awk/sed で複数回発生する可能性のある 2 つのマーカーパターンの間の行を選択する方法