grep“something”anyfiles.log> afile.csv, 입력 경로 및 파일 이름을 CSV 파일로 인쇄 할 필요가 없습니다. 처음에 입력 파일의 경로와 파일 이름이

로그 파일이 있는데 30000 줄 이상입니다. “도메인”이라는 이름을 찾아 CSV 파일로 저장해야하지만 저장 후 CSV 파일의 모든 행에 CSV 파일 맨 처음에 입력 파일의 경로와 파일 이름이 추가되었습니다. 경로와 입력 파일 이름이 필요하지 않은 경우 CSV 파일에 추가하려면 어떻게해야합니까?

예:

Input
#cat /home/log/any.log

any things..domain, anything
any things..domain, anything
any things..domain, anything


grep "domain" /home/logs/any.log > newfile.csv

Output:
#cat newfile.csv
/home/logs/any.log:domain
/home/logs/any.log:domain
/home/logs/any.log:domain


#----My requirement output is:

cat newfile.csv
domain
domain
domain

친절하게 알고, 누군가 알고 있다면 도와주세요



답변

--no-filenamegrep 옵션을 사용하십시오 .

출력에서 파일 이름의 접두사를 표시하지 않습니다. 검색 할 파일이 하나만 있거나 표준 입력 만있는 경우 이것이 기본값입니다.

grep --no-filename "domain"

참조 : Grep Manual


답변

자세한 man cut내용은이지만 짧은 대답은 grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv입니다.

또는 참조 man grep및 수행grep -o "domain" /home/logs/*.log >newfile.csv

추신 : grep "domain" /home/logs/any.log예제 와 같이 명령 줄에 하나의 파일 만 있으면 grep은 파일 이름을 출력하지 않습니다 . 파일 이름을 강제로 출력 grep "domain" /home/logs/any.log /dev/null하려면 트릭을 수행하십시오.


답변