여러 파일을 grepping하고 있다고 가정 할 때, grep이 현재 검색하고있는 파일을 표시하는 방법이 있습니까?어떤 파일이 grep 검색입니까?
예 :
grep "*.log" file1 file2 file3 file4
가 그렙하여 현재 탐색중인 파일 FILE1 등 즉, 파일 2, 파일 3을 결정하고,이 출력을 표시 할 수 있는가?
감사합니다.
여러 파일을 grepping하고 있다고 가정 할 때, grep이 현재 검색하고있는 파일을 표시하는 방법이 있습니까?어떤 파일이 grep 검색입니까?
예 :
grep "*.log" file1 file2 file3 file4
가 그렙하여 현재 탐색중인 파일 FILE1 등 즉, 파일 2, 파일 3을 결정하고,이 출력을 표시 할 수 있는가?
감사합니다.
확실히 --with-filename
결과를 포함하는 파일과 결과를 연결하는 쉬운 방법입니다 사용,하지만 당신은 정말 현재 당신은 단순히 루프에서 호출 할 수 있습니다 검색되는 파일 grep
보고 싶다면 :
for f in file1 file2 file3 file4; do
echo "Searching $f"
grep "*.log" "$f"
done
검색을 시작하기 전에 파일 이름이 인쇄됩니다.
Downvoter는 설명해 주시겠습니까? Cb0이 나 한테 똑같은 대답을 올린 것은 분명히 일반적인 해결책입니다. – dimo414
의견에서 설명한대로 grep
에는이 경우 -H
옵션이 있습니다. man
페이지에서
-H, --with-filename
Print the file name for each match. This is the default when there is more than one file to search.
은 당신이해야 할 모든 grep -H "*.log" file1 file2 file3 file4
로 명령에 플래그를 추가하고 grep
가 입력 파일의 각각의 패턴 매칭을 수행하는 순서를 관찰 할 수있다.
grep
이 일치하는 항목을 표시하지 않고 현재 검색중인 파일을 알고 싶다면 파일 핸들이 열려 있는지 확인할 수 있습니다. 이 휴대용 아니라, 리눅스,이 파일 기술자 (3) 당신이 1234
이 grep
프로세스의 PID입니다
ls -l /proc/1234/fd/3
로 할 수있는 검사 할 하나가 될 것으로 보인다.
간단한 루프와 globstar를 사용하여 모든 파일을 실행하고 이름을 반향시킨 다음 패턴을 grep 할 수 있습니다.
for file in **
do
echo "searching $file"
grep "$pattern" "$file"
done
이 같은 결과가 표시됩니다 : 당신이 특정 파일을 검색하려면
searching file1
LINE_WITH_PATTERN
searching file2
searching file3
LINE2_WITH_PATTERN
을 ...
for file in file1 file2 file3 file4
은 (HTTP를 [그렙 문서]를 읽기 : // www가 .gnu.org/software/grep/manual/grep.html # Output-Line-Prefix-Control),'--with-filename' 옵션을 찾아보십시오. – larsks
"찾을. - 이름"*. 로그 "타입의 - 엑스 grep"뭔가 "{} \;"시도 할 수 있습니다 – mebada