設定ファイルに文字列があるかどうかを確認するためにBashを作成したいと思います。ファイル形式を変更できません。他のアプリケーションに属しています。
ファイルは、角かっこ内の文字列で指定されたグループに細分化されます。
これは成功するはずです。
[group1]
MyParameter
junk1
junk2
[group2]
junk3
junk4
以下はエラーです。
[group1]
junk1
junk2
[group2]
MyParameter
junk3
junk4
grep -q
ファイルにそのファイルがあるかどうかを確認するには、aを実行できますが、そのファイルが内のグループとは異なるグループにMyParameter
ある場合は、group1
エラーが発生します。
両方のグループに存在する場合、MyParameter
エラーがgroup1
。
行番号(頭、尾など)には依存できません。またgroup2
、名前に依存しないほど一般的であれば良いでしょう(スクリプトは角かっこで始まり、終わり、前のセットを終了する別の行を見つけた場合にのみわかります)。
ベストアンサー1
テキスト処理に問題があるたびに、誰かが「awkを使用しよう」と言います。一般的に解決策があります。
awk '
/^\[.*\]$/ {group = $0}
group == "[group1]" && $1 == "MyParameter" {found=1; exit}
END {exit !found}
'