grep 결과에서 긴 줄 제외

grep 결과에서 긴 줄 제외

결과 에서 매우 긴 줄을 제외하려면 어떻게 해야 합니까 grep?

나는 종종 많은 .js 파일( )을 검색하고 -r그 중 일부는 컴파일되므로 일반적으로 몇 천 자 길이의 한 줄로 구성됩니다. 이렇게 복잡해서 나머지 파일의 결과를 확인하기가 어렵습니다.

grep예를 들어 1000자를 초과하는 줄을 제외하려면 무엇을 전달해야 합니까 ?

나는 다른 grep을 통해 결과를 파이프할 필요가 없는 것을 선호합니다. 그렇게 하면 출력에서 ​​색상이 손실되거나 색상을 다시 가져오기 위해 파이프 끝에 첫 번째 grep을 추가해야 하기 때문입니다.

답변1

무언가에 파이프를 연결한다고 해서 grep반드시 색상이 제거되는 것은 아닙니다. 해당 동작은 --color=auto(확인하면 alias grep아마도 사용 중인 것일 수 있음) 결과 입니다. 이를 무시하고 전달할 수 --color=always있으며 grep파이프를 통해서도 색상이 유지됩니다.

라인을 제외하는 한 원하는 도구로 파이프할 수 있습니다(예: cutAmazed가 언급한 것). 중요한 경우 grep의 색상은 일치하는 행에 추가 바이트를 삽입한다는 점을 명심하십시오. (어쨌든 나에게는) 동일한 호출에서 이를 수행할 수 있는 확실한 방법이 없습니다 grep.

답변2

다음 명령은 원하는 결과를 달성해야 합니다. 즉, 길이가 1000자를 초과하는 일치하는 줄을 출력하지 않습니다.

grep -r --color=always $pattern . | cut -c1-1000

플래그 --color=always는 grep에 의해 색상 이스케이프 시퀀스가 ​​생성되도록 보장합니다.

이 옵션의 기본값은 --color=autogrep color가 대화형 터미널에 전달되는 경우에만 출력되도록 하고 다른 명령으로 파이프될 때는 색상을 사용하지 않는 것입니다.

원천:https://unix.stackexchange.com/a/113507/48906

관련 정보