パターンが表示された後、行4の値を検証します。

パターンが表示された後、行4の値を検証します。

検証が必要なテキストファイルがあり、期待値が存在するかどうかを確認する方法を見つけようとしています。

私のファイルの例は次のとおりです。

InitialPattern:
   Value1=somevalue
   Value2=somevalue
   Value3=somevalue
   InstallationName=InstallationX

2〜4行目は関係ありませんが、5行目でこれを確認する必要があります。

   InstallationName=Installation1

しかし、この線は常に存在するわけではなく、この時点でパターンが再開されます。

InitialPattern:

これまでに行った操作は、その行がまったく表示されない場合を除いて機能します。

      instName="Installation1"
      installationNames=$(cat file.txt | grep InstallationName)
      IFS=$'\n' read -rd '' -a array <<< "$installationNames"
      for element in "${array[@]}"
      do
         if [[ "$element" =~ "$instName" ]]; then
           test="pass"
         else
           test="fail"
           break
         fi
      done

どんなアイデアがありますか?私はこの投稿を見ています:一致する行と一致する行内のn行目を印刷します。 パターンが表示された後、ユーザーが4行目を取得する場所 - この値を保存できる場合は、予想値と比較できると思いますが、まだ保存する方法がわかりません。

どんな案内でも歓迎します!

ベストアンサー1

test=$(
    sed '
        /InitialPattern:/! d
        n
        n
        n
        $!n
        /.*Installation[0-9]\+$/d
        s/.*/FAIL/p
        q
        ' file.txt)
test=${test:-PASS}

おすすめ記事