爲什麼要運行head
?不能保證會有與文件中的文字一樣多的單詞;的確,實際上保證不會有(因爲會有一些重複的詞)。如果你想看到所有的數據,然後顯示所有的數據;請勿過濾sort -nr
的輸出。
第一個tr
只需要一個斜線,我想。通常情況下,您會將空白和標點符號映射到換行符(-s
選項爲tr
以將相鄰換行符壓縮爲1)。從第一個tr
開始的斜槓作爲第三個tr
的標點符號,所以它不明顯。我想,我希望看到這樣的:
cat "[email protected]" |
tr -cs '[:alpha:]' '\n' | # Convert any non-alpha character to newline
tr '[:upper:]' '[:lower:]' | # Case-convert to lower case
sort | uniq -c | sort -nr
注意使用"[email protected]"
而非$*
;當您指定的文件名不包含空格時(新行,製表符等)沒有區別;當他們這樣做時,"[email protected]"
表單是正確的,而$*
不是,所以你可能總是使用"[email protected]"
。這比$*
更爲正確。
對於一些C源代碼我已經躺在附近,從腳本的輸出是:
246 n
217 i
153 int
141 list
124 if
118 t
103 char
99 a
97 size
90 buffer
89 context
82 d
81 void
79 include
79 h
78 s
65 for
62 j
55 ptr
54 r
54 const
53 static
53 sem
51 pthread
49 z
49 oldneedle
49 err
47 to
47 return
46 mutex
44 printf
43 error
43 c
注意單詞「H」經常出現的詞「包括」;這是有原因的!單詞t
出現很多,但這是因爲,例如,size_t
被過濾處理爲兩個單詞。保留下劃線是可能的;將第一個tr
更改爲使用'[:alpha:]_'
(注意下劃線)。你消除了數字,但你可以保留這些,如果你想。
這是'貓'的好用法(兩次) - 沒有UUOC獎勵給你! –