寫一個unix指令來計算檔案前n行中的單字總數?

寫一個unix指令來計算檔案前n行中的單字總數?

如何計算第一3行的單字數?

輸入:

There are many systems which are Unix-like in their architecture. 
Not able among these are the GNU/Linux distributions. 
The distinctions between Unix and Unix-like systems.
For distinctions between SUS branded UNIX architectures and other similar architectures, see Unix-like.

輸出:28

答案1

使用 awk 一行:

awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>

答案2

$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
      28

如果您用空格、破折號和斜線分隔單詞,則該計數28似乎是給定文字的前三行所得到的計數。

上面的命令將前三行拆分為每行一個這樣的單詞,方法是用換行符替換每個空格、破折號和斜杠(並使用-swith 選項刪除多個連續的換行符tr),然後計算此拆分產生的行數。

如果你使用更自然的head -n 3 file | wc -w,你會得到25單字。這是因為wc -w僅計算由空格分隔的單字,並將Unix-LikeGNU/Linux視為單字。

答案3

使用 GNUgrep或相容:

<myfile head -n 3 | grep -aEo '\w+' | wc -l

在這種情況下,是一個或多個字母數字字元或底線的序列。

答案4

head -n 4 myfile | wc -w

myfile 是輸入文件,4 是前 4 行

相關內容