알파벳의 각 문자를 사용하여 A부터 Z까지 단어 수를 추출해야 합니다. 내가 만들고 싶은 스크립트는 분석할 사전 파일의 이름을 매개변수로 취하고 이렇게 ./langstat를 사용합니다. sh dico.txt
나는 다음과 같은 것을 시도했습니다.
#!/bin/bash
cat ~/dico.txt | grep -o A | wc -l
문제는 모든 파일에 있는 A의 개수를 알려주는데 A가 입력한 단어의 개수만 알고 싶을 뿐입니다.
도와주세요?
답변1
대신 이것을 사용할 수 있습니다:
for c in {A..Z}; do
echo -n "$c: "
tr ' ' '\n' < dico.txt | grep $c | wc -l
done
작동 방식은 다음과 같습니다. for 루프는 각 문자를 A에서 Z까지 반복합니다. tr
모든 공백을 줄 바꿈으로 바꾸어 각 단어에 자체 줄이 있도록 합니다. 그런 다음 grep
단어에서 문자를 검색하고 발견되면 인쇄합니다. wc
이 행을 계산합니다.
답변2
도움이 되었나요?
#!/bin/bash
tr ' ' '\n' < "$1" | sort -u > my.tmp
for letter in {A..Z}
do
printf "Words with %c : " $letter
grep -iwc "\w*$letter\w*" my.tmp
echo
done
rm my.tmp