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가지 재미있는 명령