Bash:创建一个管道来列出前100个单词

Bash:创建一个管道来列出前100个单词,bash,sorting,pipe,Bash,Sorting,Pipe,好的,我需要创建一个命令,在一个文本块中列出任何给定文件中100个最常用的单词。 我现在所拥有的: $ alias words='tr " " "\012" <hamlet.txt | sort -n | uniq -c | sort -r | head -n 10' 我需要它以以下格式输出: the of to and To The And a we that ((在这一点上,我如何告诉它以所有大写字母打印输出?) 我需要修改它,这样我就可以将“words”通过管道传输到任何文件,这

好的,我需要创建一个命令,在一个文本块中列出任何给定文件中100个最常用的单词。 我现在所拥有的:

$ alias words='tr " " "\012" <hamlet.txt | sort -n | uniq -c | sort -r | head -n 10'
我需要它以以下格式输出:

the of to and To The And a we that
((在这一点上,我如何告诉它以所有大写字母打印输出?)


我需要修改它,这样我就可以将“words”通过管道传输到任何文件,这样就不用在管道中指定文件,初始输入将命名文件&管道将完成其余的工作

好的,把你的观点一个接一个地说出来,尽管不一定按顺序说



您只需删除
就可以将
单词更改为使用标准输入。好的,请逐一记录您的观点,但不一定要按顺序进行



只需删除
即可将
单词更改为使用标准输入。谢谢!对我来说,一步一步地(在一点指导下)抓住白鹭是最好的方法!关于猫的无用使用的标准抱怨在这里。我建议不要使用别名,部分原因是您希望命令处理命名文件,而不仅仅是标准输入。添加了非cat版本,但这确实不是问题,特别是因为这是使用脚本/别名的一种方法,而不是实际解决方案的一部分。如果您的进程太少,无法启动另一个进程,那么您可能应该编写一个可执行文件来执行lot:-)@tripleee-在这种情况下,我需要使用别名来满足主管的要求:(但这对未来来说是有用的信息要正式遵守这一要求,您可以在$HOME/bin中创建脚本,然后只需为脚本设置别名。出于多种原因,如果您不能使用脚本文件,函数比别名更可取。谢谢!仍然要逐步掌握egrep(有一点指导)对我来说,这是最好的方法!关于Cat无用用法的标准抱怨出现在这里。我建议不要使用别名,部分原因是您希望您的命令处理命名文件,而不仅仅是标准输入。添加了非Cat版本,但这真的不是问题,特别是因为这是使用脚本/别名的一种方法,而不是实际解决方案的一部分n、 如果您的进程太少,无法启动另一个进程,那么您可能应该编写一个可执行文件来执行lot:-)@tripleee-在这种情况下,我需要使用别名来满足主管的要求:(但这对未来很有用。为了正式遵守该要求,您可以在$HOME/bin中创建脚本,然后只需为脚本设置别名。出于多种原因,如果您无法使用脚本文件,则函数优先于别名。请发布新的后续问题,而不是编辑已经存在的问题。)回答令您满意。请将paxdiablo的(?)答案标记为已接受,以奖励他。同意(在新的问题点上,不一定是已接受的问题)。更改问题的基本性质会破坏整个问答概念,使迄今为止的答案变得毫无用处。您应该在开始时发布所有相关细节,或者简单地提出另一个问题,必要时链接回此问题以获取背景信息。请发布新的后续问题,而不是编辑已回答的问题请将paxdiablo的(?)答案标记为已接受,以奖励paxdiablo。同意(在新的问题点上,不一定是已接受的问题点上)。更改问题的基本性质会破坏整个问答概念,使迄今为止的答案变得毫无用处。您应该在开始时发布所有相关细节,或者简单地问另一个问题,必要时链接回此问题以获取背景信息。
the of to and To The And a we that
cat hamlet.txt | words
words <hamlet.txt
tr '[A-Z]' '[a-z]'
| awk '{printf "%s ", $2}END{print ""}'
tr '[A-Z]' '[a-z]' | tr ' ' '\012' | sort -n | uniq -c | sort -r
    | head -n 3 | awk '{printf "%s ", $2}END{print ""}'
pax> echo One Two two Three three three Four four four four | ./words.sh
four three two 
alias words="tr '[A-Z]' '[a-z]' | tr ' ' '\012' | sort -n | uniq -c | sort -r
    | head -n 3 | awk '{printf \"%s \", \$2}END{print \"\"}'"