さまざまなプロジェクトの特定のプロパティを構成する .ini ファイルがたくさんあります。
最初にiniファイルでPROJECT_Aをフィルタリングし、それが一致する場合は、2番目のパターンCONFIG_Bをフィルタリングします。CONFIG_B は PROJECT_A...X のプロパティであるため、PROJECT_A の設定を含むファイルのみを grep したいのですが、CONFIG_B も存在します。少し難しいことは承知していますが、PROJECT_A と CONFIG_A の両方が存在する ini ファイルを絞り込むことができれば、最小限のリストに手動で検査できます。私はこのような1000個のファイルを持っています:-(
典型的な設定はこのようなものです
[F-Project:PROJECT_A]
stream-window-start=0
stream-window-end=0
network-feed=LIVE:
test-config=pdl tf_dms_hiab
予想外:-
file1.ini
proj:PROJECT_A
cfg1:CONFIG_A
cfg1:CONFIG_B
cfg1:CONFIG_C
proj:PROJECT_B
cfg1:CONFIG_A
cfg1:CONFIG_C
file2.ini
proj:PROJECT_X
cfg1:CONFIG_A
cfg1:CONFIG_B
cfg1:CONFIG_C
proj:PROJECT_Y
cfg1:CONFIG_B
cfg1:CONFIG_C
file3.ini
proj:PROJECT_A
cfg1:CONFIG_B
cfg1:CONFIG_C
proj:PROJECT_B
cfg1:CONFIG_A
結果: file1.ini、file3.ini
find . -name *.ini -exec grep -w PROJECT_A {} \; -print | grep ini -exec grep CONFIG_A {} \;
[proj:PROJECT_A]
./PLATFORM/build/integration/suites/System_Maintenance_Suite/ini/Test_0621_1.ini
上記のような出力が得られるので、.ini find を含む行のみをフィルタリングします。-name *.ini -exec grep -w PROJECT_A {} \; -印刷 | grep ini
./PLATFORM/build/integration/suites/System_Maintenance_Suite/ini/Test_0722_1.ini
./PLATFORM/build/integration/suites/System_Maintenance_Suite/ini/Test_0579_15.ini
./PLATFORM/build/integration/suites/System_Maintenance_Suite/ini/Test_0460_1.ini
パターンCONFIG_Aを一度に1行ずつgrepするにはどうすればよいですか
これをファイルに書き込んで一度に1行ずつ読み取ることができることは理解していますが、これを効率的に行う方法が必要です。
あなたの提案を手伝ってください。