누군가 grep이 어떻게 작동하는지 설명해 줄 수 있나요?

누군가 grep이 어떻게 작동하는지 설명해 줄 수 있나요?

이 grep 명령이 왜 이런 식으로 결과를 표시하는지 이해할 수 없습니다. 파일 이름이 출력되는 이유는 무엇입니까? 분리하기 위해 이중 점을 사용하는 이유는 무엇입니까? 정규식인가요?

[root@centos2 ~]# grep . /sys/block/sda/sda?/start
/sys/block/sda/sda1/start:2048
/sys/block/sda/sda2/start:1026048
/sys/block/sda/sda3/start:5220352

답변1

명령에 포함된 것은 ?쉘 글로브입니다. 쉘은 glob을 확장하여 grep인쇄 중인 세 파일 각각의 이름인 세 가지 인수를 명령에 전달합니다. 이 grep명령은 사용자가 여러 파일을 검색하고 있음을 감지하므로 표현식의 실제 출력에서 ​​검색 중인 표현식의 파일 이름을 찾습니다. 패턴이 단일 점( .) 이므로 grep이 패턴은 "임의의 단일 문자"로 해석되며, 이는 세 파일 모두의 모든 행에서 충족됩니다. 세 파일 각각의 길이는 한 줄이므로 각 파일에 대해 한 줄을 인쇄합니다. 파일 이름 앞에 추가하면 위와 같은 출력이 표시됩니다.

관련 정보