안녕하세요 여러분, 이 URL에서 's'로 끝나는 단어의 수를 세고 싶습니다.
https://matt.might.net/articles/what-cs-majors-should-know/
이게 내가 한 일이야
curl https://matt.might.net/articles/what-cs-majors-should-know/ | \
grep s$
's'로 끝나는 단어를 필터링하여 개수를 세는 방법을 찾을 수 없습니다.
답변1
elinks -no-numbering -no-references -dump https://matt.might.net/articles/what-cs-majors-should-know/ |
grep -Po '\w+s\b' |
wc -l
(GNU grep
또는 호환 사용)
나에게주세요:595
elinks
HTML을 검색하여 원하는 방식으로 텍스트로 변환하세요. 일부 대안은 w3m -dump
또는 입니다 lynx -nolist
.
그런 다음 하나 이상의 단어 문자(단어 문자는 숫자 또는 밑줄)의 시퀀스를 찾고, s
단어 문자가 없으면 로 계산합니다 wc -l
.
기본적으로 단어는 2개 이상의 숫자 또는 밑줄 문자의 시퀀스로 정의되며, 다음으로 끝나는 문자를 찾습니다 s
( 로 끝나는 문자를 찾는 -i
옵션이 추가됨 ). 이는 예를 들어 in 이 계산되지 않음을 의미합니다. 한 글자로 된 단어를 고려하고 싶다면 위와 같이 바꿀 수 있습니다. 아니면 이렇게 하되 생략하면 단어 목록을 볼 수 없게 됩니다 .grep
S
s
it's
+
*
grep -Po 's\b'
| wc -l
또 다른 방법은 단어를 먼저 추출하고 다음으로 끝나는 단어를 찾는 것입니다 s
.
grep -Eo '\w+' | grep -c 's$'
아무튼 꽤 거친 정의네요단어일반 영어 텍스트에서만 작동합니다. 다른 언어로 된 텍스트에 적용하면 문제가 발생할 수 있습니다. 예를 들어, 폴란드어 단어가 분해된 형식 U+0301(여기서 U+0301은 결합된 악센트임)로 인코딩된 경우 abrogowałybyście
폴란드어 단어(단어 목록에서 무작위로 선택됨)에서 일치하는 항목을 찾습니다. 고려된 단어 뒤에는 단어 문자가 없습니다.ś
s
s
또는 S
에서 무엇을 해야 할지 고려할 수도 있습니다 .USA
U.S.A.