로그 파일이 있는데 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-filename
grep 옵션을 사용하십시오 .
출력에서 파일 이름의 접두사를 표시하지 않습니다. 검색 할 파일이 하나만 있거나 표준 입력 만있는 경우 이것이 기본값입니다.
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
하려면 트릭을 수행하십시오.