我有一个字符串“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/