[bash] 파일에서 가장 긴 줄
파일에서 가장 긴 줄의 길이를 찾는 간단한 방법을 찾고 있습니다. 이상적으로는 스크립트 대신 간단한 bash 쉘 명령입니다.
답변
wc (GNU coreutils) 사용 7.4 :
wc -L filename
제공합니다 :
101 filename
답변
awk '{print length, $0}' Input_file |sort -nr|head -1
참조 : 파일에서 가장 긴 줄 찾기
답변
awk '{ if (length($0) > max) {max = length($0); maxline = $0} } END { print maxline }' YOURFILE
답변
고양이를 쓸모없고 외부 명령을 사용하지 않고 재미 있고 교육적인 목적으로 순수한 POSIX 셸 솔루션 . 파일 이름을 첫 번째 인수로 사용합니다.
#!/bin/sh
MAX=0 IFS=
while read -r line; do
if [ ${#line} -gt $MAX ]; then MAX=${#line}; fi
done < "$1"
printf "$MAX\n"
답변
wc -L < filename
준다
101
답변
perl -ne 'print length()." line $. $_"' myfile | sort -nr | head -n 1
가장 긴 줄의 길이, 줄 번호 및 내용을 인쇄합니다
perl -ne 'print length()." line $. $_"' myfile | sort -n
줄 번호와 길이를 가진 모든 줄의 정렬 된 목록을 인쇄합니다
.
연결 연산자이다 – 길이는 () 이후 여기에 사용하면
$.
, 현재의 행 번호는
$_
현재 라인
답변
위의 예에서 중요한 간과 점.
다음 2 개의 예제는 확장 탭을 계산합니다.
wc -L <"${SourceFile}"
# or
expand --tabs=8 "${SourceFile}" | awk '{ if (length($0) > max) {max = length($0)} } END { print max }'
다음 두 개의 확장되지 않은 탭이 계산됩니다.
expand --tabs=1 "${SourceFile}" | wc -L
# or
awk '{ if (length($0) > max) {max = length($0)} } END { print max }' "${SourceFile}"
그래서
Expanded nonexpanded
$'nn\tnn' 10 5