내 하드 드라이브에 웹사이트가 있고 HTML 파일에서 키워드를 찾은 다음 발견된 각 콘텐츠를 새 줄에 나열하는 HTML 파일로 출력해야 합니다. 현재 아래 줄을 사용하고 있지만 출력이 이상적이지 않습니다.
grep -lUirn -C 1 "Word1" * >> report.html
위 줄은 다음을 생성합니다.
file1.html file2.html etc.html
하지만 파일로 출력하려면 필요합니다.
file1.html
file2.html
etc.html
더 이상적으로는 다음과 같이 출력됩니다.
http://relitivePath/file1.html
http://relitivePath/file2.html
http://relitivePath/etc.html
답변1
GNU를 사용할 때 옵션(모든 파일을 바이너리로 처리)은 MS-DOS 또는 Windows에서 실행하지 않는 한 아무런 효과가 없으며 (일치하는 줄의 줄 번호 출력)은 grep
( 일치하는 줄의 이름만 출력)과 결합해도 효과가 없습니다. 파일) ). 마찬가지로 (일치 주변의 한 줄 컨텍스트)는 효과가 없습니다 .-U
-n
-l
-C 1
-l
일치하는 파일은 이미 별도의 줄에 보고되어 있는데 왜 한 줄에 넣었는지 잘 이해가 되지 않습니다.
grep -lr -Fiw 'Word1' .
귀하의 요구 사항을 충족해야 합니다. -F
정규식 일치 대신 문자열 비교를 수행하고 -w
하위 문자열 대신 전체 단어 일치를 추가했습니다 .
출력을 URI로 변환하려면 다음을 수행하십시오.
grep -lr -Fiw 'Word1' . | sed 's,^,http://,'
이것은 단지 http://
각 줄의 시작 부분에 삽입을 사용합니다 sed
.
이 모든 것은 분명히 파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다. 이렇게 하면 sed
파일 이름의 개행으로 구분된 각 부분 앞에 문자열이 삽입됩니다.