특정 (하위)문자열을 (이름, 디렉터리 또는 내용에) 포함하는 모든 일반 파일 나열

특정 (하위)문자열을 (이름, 디렉터리 또는 내용에) 포함하는 모든 일반 파일 나열

제목과 마찬가지로 하위 문자열이 나타나는 각 (텍스트) 파일의 줄 번호도 인쇄하고 싶습니다.

지금까지 나는 다음을 가지고 있습니다 :

find /sys | grep "filesystem"

하지만 파일의 내용은 보지 않고 파일 이름과 디렉터리만 보는 것 같습니다.

동시에 여러 문자열을 검색하는 방법은 무엇입니까? 추가로 검색 "*filesystem"하여 이 문자열이 나타날 수 있는 "filesystem*"모든 항목을 포함해야 한다고 생각하기 때문입니다 ."*filesystem*"

미리 감사드립니다.

답변1

파일 이름과 내용에 대해 두 가지 다른 명령을 사용해도 괜찮다면 다음 명령이 도움이 될 것입니다.

find /sys -name "*filesystem*"

위 명령은 파일 이름/디렉터리 이름의 일부로 "filesystem"이 포함된 모든 파일/디렉터리를 찾습니다.

grep -rn "filesystem" /sys/*

위 명령은 내용에 "filesystem"이 포함된 모든 파일을 재귀적으로 찾아 일치하는 줄과 함께 줄 번호를 인쇄합니다. 내용이 아닌 줄 번호만 인쇄하려면 다음 필터를 사용할 수 있습니다. 2를 인쇄하려는 열 번호로 바꿀 수 있습니다.

grep -rn "filesystem" /sys/* | awk -F":" {'print $2'}

관련 정보