编写一个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 行

相关内容