如何在Bash中逐行打印时对数据进行排序

时间:2015-03-25 11:13:32

标签: linux bash shell sorting

我正在编写一个shell脚本遍历目录列表并计算其中文件的单词。每次读取文件时,代码都会打印数据。所以输出没有排序。我该如何排序?

现在的输出是这样的:

cat 5
door 1
bird 3
dog 1

我希望先按第二列排序,然后按第一列排序:

dog 1
door 1
bird 3
cat 5

2 个答案:

答案 0 :(得分:1)

您可以将shell脚本传递给:

sort -n -k2 -k1

使用-n指定数字排序,并使用-k2首先按第二个字段排序,然后使用-k1按第一个字段排序。

答案 1 :(得分:0)

首先,我尝试重现OP正在做什么,所以在创建文件后,我尝试了这个命令:

% for i in *; do echo -n "$i "; wc -w < $i; done
bird 3
cat 5
dog 1
door 1

然后我添加了那种:

 % (for i in *; do echo -n "$i "; wc -w < $i; done) | sort -n -k 2 -k 1    
dog 1
door 1
bird 3
cat 5