検証が必要なテキストファイルがあり、期待値が存在するかどうかを確認する方法を見つけようとしています。
私のファイルの例は次のとおりです。
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}