여러 하위 디렉터리가 포함된 디렉터리에서 이 grep 명령을 실행하고 있습니다.
grep -rn 'AlertManager.ShowAlert'
이것은 작동하지만 모든 결과가 중복되는 것으로 나타났습니다. 첫 번째 결과 집합에는 "=" 뒤에 숫자(아마도 검사한 모든 줄의 누적 합계?)가 있고, 두 번째 결과 집합에는 내가 원하는 결과가 있으며 파일의 전체 경로와 파일의 줄 번호가 표시됩니다. .
"=:#####" 결과의 첫 번째 세트를 얻는 이유는 무엇이며 이러한 결과를 표시하지 않을 수 있나요?
첫 번째 그룹:
=:15625:gui/alertmanager.gui:72: visible = "[And(AlertManager.HasCallForPeace, AlertManager.ShowAlert('call_for_peace'))]"
=:15628:gui/alertmanager.gui:94: visible = "[And(AlertManager.HasTrueWar, AlertManager.ShowAlert('war'))]"
... middle cut for brevity ...
두 번째 세트가 시작됩니다(비교를 위해 첫 번째 세트의 마지막 행을 유지했습니다).
=:15787:gui/alertmanager.gui:1180: visible = "[And(AlertManager.HasGreatWorkWithUpgradableEffects, AlertManager.ShowAlert('gw_with_upgrades'))]"
gui/alertmanager.gui:72: visible = "[And(AlertManager.HasCallForPeace, AlertManager.ShowAlert('call_for_peace'))]"
gui/alertmanager.gui:94: visible = "[And(AlertManager.HasTrueWar, AlertManager.ShowAlert('war'))]"
답변1
위에 몇 가지 유용한 의견을 들은 후에 이것이 내 실수였음이 밝혀졌습니다!
같은 내용을 담고 있는 "="라는 파일이 있습니다! 이상하네요. grep이 하는 일인 줄 알았는데 그렇지 않네요.
그래서 내 "대답"은 grep이 해당 특정 파일을 건너뛰도록 하는 것입니다.