웹사이트 검색

Linux 터미널의 재미 - 단어 및 문자 수를 가지고 놀아보세요


Linux 명령줄은 그 자체로 많은 재미를 갖고 있으며 많은 지루한 작업을 매우 쉽게 완벽하게 수행할 수 있습니다. 단어와 문자, 텍스트 파일에서의 빈도 등을 가지고 노는 것이 이 기사에서 보게 될 것입니다.

텍스트 파일의 단어와 문자를 조작하기 위해 Linux 명령줄을 조정하기 위해 우리 마음속에 떠오르는 유일한 명령은 wc 명령입니다.

단어 수를 나타내는 'wc' 명령은 텍스트 파일에서 새 줄, 단어 및 바이트 수를 인쇄할 수 있습니다.

작은 스크립트로 작업하여 텍스트 파일을 분석하려면 텍스트 파일이 있어야 합니다. 일관성을 유지하기 위해 아래 설명된 대로 man 명령의 출력으로 텍스트 파일을 생성합니다.

man man > man.txt

위 명령은 'man' 명령에 대한 '매뉴얼 페이지' 내용이 포함된 'man.txt' 텍스트 파일을 생성합니다.

아래 스크립트를 실행하여 위에서 생성된 '텍스트 파일'에서 가장 일반적인 단어를 확인하고 싶습니다.

cat man.txt | tr ' '  '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
샘플 출력
7557 
262 the 
163 to 
112 is 
112 a 
78 of 
78 manual 
76 and 
64 if 
63 be

위의 한 줄짜리 간단한 스크립트는 텍스트 파일에서 가장 자주 나타나는 10개의 단어와 해당 단어의 출현 빈도를 보여줍니다.

다음 명령을 사용하여 단어를 개별적으로 분해하는 것은 어떻습니까?

echo 'tecmint team' | fold -w1
샘플 출력
t 
e 
c 
m 
i 
n 
t 
t 
e 
a 
m

참고: 여기서 '-w1'은 너비를 나타냅니다.

이제 우리는 텍스트 파일의 모든 단어를 분석하고, 결과를 정렬하고, 가장 자주 사용되는 10개의 문자 빈도로 원하는 출력을 얻을 것입니다.

fold -w1 < man.txt | sort | uniq -c | sort -rn | head
샘플 출력
8579  
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l

발생 빈도에 따라 대문자와 소문자를 다르게 사용하여 텍스트 파일에서 가장 자주 발생하는 문자를 얻는 것은 어떻습니까?

fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
샘플 출력
11636  
2504 E 
2079 A 
2005 T 
1729 I 
1645 N 
1632 S 
1580 o
1269 R 
1055 L 
836 H 
791 P 
766 D 
753 C 
725 M 
690 U 
605 F 
504 G 
352 Y 
344 .

문장 부호가 포함된 위 출력을 확인하세요. 'tr' 명령을 사용하여 구두점을 제거해 보겠습니다. 여기 있습니다:

fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
샘플 출력
  11636  
  2504 E 
  2079 A 
  2005 T 
  1729 I 
  1645 N 
  1632 S 
  1580 O 
  1550 
  1269 R 
  1055 L 
   836 H 
   791 P 
   766 D 
   753 C 
   725 M 
   690 U 
   605 F 
   504 G 
   352 Y

이제 세 개의 텍스트 파일이 있습니다. 위의 하나의 라이너 스크립트를 실행하여 출력을 확인하겠습니다.

cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
샘플 출력
  11636  
   2504 E 
   2079 A 
   2005 T 
   1729 I 
   1645 N 
   1632 S 
   1580 O

다음으로 우리는 최소 10자 길이의 드물게 사용되는 문자를 생성할 것입니다. 다음은 간단한 스크립트입니다.

cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head
샘플 출력
1        ────────────────────────────────────────── 
1        a all 
1        abc             any or all arguments within   are optional 
1               able  see setlocale for precise details 
1        ab              options delimited by  cannot be used together 
1               achieved by using the less environment variable 
1              a child process returned a nonzero exit status 
1               act as if this option was supplied using the name as a filename 
1               activate local mode  format and display  local  manual  files 
1               acute accent

참고: 모든 결과가 생성될 때까지 위 스크립트에서 점이 점점 더 많아집니다. .{10}을 사용하면 10개의 문자 일치 항목을 얻을 수 있습니다.

이 간단한 스크립트를 통해 영어에서 가장 자주 나타나는 단어와 문자도 알 수 있습니다.

지금은 여기까지입니다. 저는 여러분이 읽고 싶어할 또 다른 흥미롭고 색다른 주제로 다시 이 자리에 오겠습니다. 아래 댓글 섹션에 귀중한 피드백을 제공하는 것을 잊지 마세요.

더 읽어보기: 리눅스의 20가지 재미있는 명령