用的是老师给的ppt上的例子,FILE是文件名,完成功能是对该文件的单词进行排序,并输出出现次数最高的top10.
NUM表示输出的出现次数最高的单词的个数。
tr -sc "[A-Z][a-z]" "[\012*]" < $FILE | \ #1、将所有大小写英文字母之外的字符转化为一个回车,并且将多个回车压缩为一个。使用tr命令。
tr "[A-Z]" "[a-z]" | \ #2、将所有的大写字母转化为小写字母。
sort -t\r | \ #3、排序,结果是按字典顺序排好的单词列表,相同的单词挨在一起。
uniq -c | \ #4、在每个单词之前显示出现的次数,并且删除重复的行。
sort -r -k1 | \ #5、按照出现的次数降序排序。
head -$NUM | nl
运行后报错信息如图所示。
求各位帮帮忙啊!
shell中使用tr命令出了问题
-
- 帖子: 42
- 注册时间: 2013-12-11 8:44
- 系统: ubuntu 12.04
- astolia
- 论坛版主
- 帖子: 6456
- 注册时间: 2008-09-18 13:11
Re: shell中使用tr命令出了问题
当你用\作为连接下一行之用时,必须要在行尾。也就是后面不能有其他字符。你那后面一堆注释都不能要
tr -sc "[A-Z][a-z]" "[\012*]" < $FILE | \
tr "[A-Z]" "[a-z]" | \
sort -t\r | \
uniq -c | \
sort -r -k1 | \
head -$NUM | nl
tr -sc "[A-Z][a-z]" "[\012*]" < $FILE | \
tr "[A-Z]" "[a-z]" | \
sort -t\r | \
uniq -c | \
sort -r -k1 | \
head -$NUM | nl
-
- 帖子: 42
- 注册时间: 2013-12-11 8:44
- 系统: ubuntu 12.04
Re: shell中使用tr命令出了问题
astolia 写了:当你用\作为连接下一行之用时,必须要在行尾。也就是后面不能有其他字符。你那后面一堆注释都不能要
tr -sc "[A-Z][a-z]" "[\012*]" < $FILE | \
tr "[A-Z]" "[a-z]" | \
sort -t\r | \
uniq -c | \
sort -r -k1 | \
head -$NUM | nl
真是谢谢啦!