grep이 여기서 다른 줄로 시작하는 "거의" 중복 줄을 표시하는 이유는 무엇입니까?

grep이 여기서 다른 줄로 시작하는 "거의" 중복 줄을 표시하는 이유는 무엇입니까?

여러 하위 디렉터리가 포함된 디렉터리에서 이 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이 해당 특정 파일을 건너뛰도록 하는 것입니다.

관련 정보