특정 길이를 초과하는 파일의 줄을 식별하는 방법

특정 길이를 초과하는 파일의 줄을 식별하는 방법

내 코드에서 특정 길이보다 긴 줄을 찾고 싶습니다. 내 코드가 여러 파일에 있습니다. 이를 수행할 수 있는 좋은 방법이 있습니까?

파일과 줄 번호를 알고 싶습니다. 내용이 선호되지만 필수는 아닙니다. 이 연습의 목적은 선을 끊는 방법(아마도 수동으로)을 알아내는 것입니다.

답변1

그리고 grep:

grep -En '.{12}' file

길이가 12자 이상인 줄의 경우.

여러 파일이 있습니다:

find . -type f -exec grep -En '.{12}' {} +

grepGNU와 같은 일부 구현에서는 grep파일 자체를 찾을 수 있습니다.

grep -rEn '.{12}' .

그러나 기호 링크 및 기타 특이한 파일에는 주의하세요.

답변2

AWK 솔루션

awk '{       
if (length($0) > 5)
        print $0;'} yourfile

또는 더 간결하게 말하면:

awk 'length > 5' file

답변3

쿵쿵 솔루션

#!/bin/bash

count=0

while read; do
    ((++count)) 
    len=${#REPLY}
    if ((len > 80)); then
        echo "Line $count is $len characters."
    fi
done

예를 들어 ; 에서 1을 빼는 개행 문자 ./whatever.sh < input.file는 포함되지 않습니다 $len. 이것이 바람직하지 않거나 입력이 CRLF로 끝나는 경우 그에 따라 조정해야 합니다.

답변4

( perl예를 들어) 80자보다 긴 줄을 검색한다고 가정하면 다음과 같습니다.

행을 표시하려면 다음을 수행합니다.

$ perl -nle 'print if length > 80' your_file

행 수 표시:

$ perl -nle 'print "$.\n" if length > 80' your_file

아니면 둘다:

$ perl -nle 'print "[$.]:  $_\n" if length > 80' your_file

관련 정보