이 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
이 패턴은 "임의의 단일 문자"로 해석되며, 이는 세 파일 모두의 모든 행에서 충족됩니다. 세 파일 각각의 길이는 한 줄이므로 각 파일에 대해 한 줄을 인쇄합니다. 파일 이름 앞에 추가하면 위와 같은 출력이 표시됩니다.