linux - 在 Linux 中排序

标签 linux sorting

我有一个字符串“abc”,我在 shell 目录中的 15 个文件中对它进行了 greping。 当我在我的 15 个文件中 grep "abc" 时,它会像这样返回整行文件:

abc 0.2  9.0
abc 0.01 8.0
abc 0.06 9.4
abc 0.02 8.7

现在我希望根据第二列按升序对输出进行排序。

所以我写了这样的命令:

grep "abc" *.txt | sort -nr -t_ -k2

但是上面的命令不起作用,我不知道为什么。

最佳答案

您的命令无效,因为您没有用下划线分隔各列;此外,您希望数据按升序排列,但您告诉它按相反(降序)顺序排序。使用:

grep "abc" *.txt | sort -n -k 2

或者:

grep "abc" *.txt | sort -k 2n

请注意,如果有多个文件,您的 grep 输出将以文件名作为前缀。你将不得不决定这是否重要。如果任何文件名中有空格,它只会搞砸。 grep-h 选项会抑制文件名。

关于linux - 在 Linux 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028972/

相关文章:

linux - 如何用字符串和随机生成的数字替换文件中的 header 值?

java - 数组按字母顺序排序

python - 如何按字典键内的值对字典进行排序?

linux - Centos7如何查找包含特定文本的文件?

c - 在c中获取文件文本的行数

linux - 在 Jenkins 管道作业中将变量传递给 bash 脚本

c++ - 在 LINUX 上使用 boost 时出现编译错误

java - 为什么我的插入方法在创建堆时给出了 java.lang.StackOverflowError。

java - Java 叠加插入排序

python - 如何导入具有排序文件名的 csv 文件?