grep 출력 형식 [닫기]

grep 출력 형식 [닫기]

내 하드 드라이브에 웹사이트가 있고 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파일 이름의 개행으로 구분된 각 부분 앞에 문자열이 삽입됩니다.

관련 정보