ファイルからデータを抽出し、いずれかの値に基づいてファイル名を構成する方法

ファイルからデータを抽出し、いずれかの値に基づいてファイル名を構成する方法

構成ファイルから2つの値を抽出して新しいファイルに書き込もうとします。難しい部分は、新しいファイルの名前が入力ファイルの値の1つによって決まるようにしたいということです。

私が抽出したい値は、「Build_Version」とDocker名の4桁の略語(「docker_Name」)です。たとえば、ファイルにが表示されている場合は、docker_Name='bcbs_pr-app-01'「bcbs」のみが必要です。 bcbs_build.txt.

以下はログファイルから抜粋したものです。

nonSSL_port=80  # FOR STAGING 
Build_Type=prod 
Build_Version=9.0.00.01_134143 
docker_Name='bcbs-pr-app-01'

必要なファイル出力は次のとおりです。

bcbs
9.0.00.01_134143 

sed私が望む値を抽出する命令を見つけました。

sed -n -e '/Build_Version=/p' -e '/docker_Name=/p' environment-info.conf > build_version.txt

ただし、これを行うとBuild_Version=合計行が完全に抽出されますが、Build_Versionとdocker nameの値のみが必要です。docker_Name=4文字のDocker名の略語(bcbs)を使用してファイル名を指定する方法を理解する必要があります。

ベストアンサー1

ファイルはsh構文のように見えます。したがって、そのファイルが実際にshスクリプトに含めたい構成ファイルである場合は、次のようにします。

. ./environment-info.conf &&
  printf '%s\n' "${docker_Name%%-*}" "$Build_Version" > "${docker_Name%%-*}_build.txt"

おすすめ記事