
내 코드에서 특정 길이를 초과하는 줄을 찾고 싶습니다. 내 코드가 여러 파일에 있습니다. 이를 수행하는 좋은 방법은 무엇입니까?
파일과 줄 번호를 알고 싶습니다. 콘텐츠가 선호되지만 반드시 필요한 것은 아닙니다. 연습의 목적은 선을 끊는 방법(아마도 수동으로)을 알아내는 것입니다.
답변1
와 함께 grep
:
grep -En '.{12}' file
길이가 12자 이상인 줄의 경우.
여러 파일의 경우:
find . -type f -exec grep -En '.{12}' {} +
grep
GNU와 같은 일부 구현은 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
예를 들어 ./whatever.sh < input.file
. 에서 1을 빼면 개행 문자가 포함되지 않습니다 $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