如何只显示列表的最后一行?

如何只显示列表的最后一行?

假设我列出了一个列表并按文件的时间属性对文件进行排序:

ls -ltr

-rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1
-rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2
.
.
.
-rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000

为了仅获取列表的最后一行,我应该在管道链中的 ls -ltr 后面添加什么?我知道有sed和awk,但我不知道如何使用它们,我只知道它们能做什么。

答案1

既然您具体询问了 sed,

ls -ltr | sed '$!d'

答案2

您正在寻找tail

ls -ltr | tail -n 1

ls -ltr这将仅显示 的输出的最后一行。您可以通过更改后面的值来控制行数-n;如果完全省略,-n 1您将得到十行。

tail使用代替的好处sed是从tail文件末尾开始直到到达换行符,而sed必须遍历整个文件直到到达末尾,然后才返回自找到最后一个换行符以来的文本。

答案3

使用 awk:

ls -ltr | awk 'END { print }'

相关内容