한 줄의 단어 수를 계산하는 방법

한 줄의 단어 수를 계산하는 방법

다음을 포함하는 "shoplist.txt"라는 텍스트 파일이 있습니다.

drinks water cola fanta
fruit banana orange

각 행에 몇 개의 항목이 있는지 알고 싶습니다. "컷" 기능을 이용해서 음료나 과일을 추출할 수 있는데, 한 줄에 몇 단어가 있는지 어떻게 세나요?

내 실제 코드는 다음과 같습니다

fileLine=`cat file.txt`
#Here I get each line saving it to fileLine
for line in $fileLine; do
 echo
((aux++))
done

하지만 이 코드는 매번 %fileLine에 저장되기 때문에 작동하지 않습니다(음료, 물, 콜라 등).

첫 번째 줄을 구한 다음 해당 줄의 단어 수를 어떻게 계산할 수 있나요?

답변1

가능한 경우 awk현재 NF줄의 필드 수(필드는 기본적으로 공백으로 구분된 단어입니다).

사용

awk '{ print NF, $0 }' inputfile

귀하의 입력 예를 바탕으로 다음이 인쇄됩니다.

4 drinks water cola fanta
3 fruit banana orange

답변2

배쉬에서 wc:

IFS=$'\n'
while read line; do
    wc -w <<< "$line"
done < file.txt

wc파일의 줄 수, 단어 수, 바이트 수를 셉니다. 쉘 루프를 사용하면 한 줄의 단어 수를 셀 수 있습니다.

답변3

(단일) 숫자와 관련되어 있기 때문에 약간 맥락이 다를 수 있지만(유사하지만) 이 매우 간단한 awk 규칙은 파일에서 각 줄의 숫자가 4배 미만인 줄만 유지하는 데 도움이 됩니다.

awk -F [5,6,7,8,9] 'NF-1<4' IN > OUT 

'NF-1' 0, 1, 2 또는 3개의 높은 숫자(더 이상은 없음)의 정확한 개수를 가져옵니다.

관련 정보