Abd*_*red 13 command-line ls sed awk
假设我列出并按其时间属性对文件进行排序:
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
Run Code Online (Sandbox Code Playgroud)
为了只获得列表的最后一行,我应该在管道链中的 ls -ltr 后面添加什么?我知道有sed和awk,但我不知道如何使用它们,我只知道它们能做什么。
ste*_*ver 27
由于您专门询问了 sed,
ls -ltr | sed '$!d'
Run Code Online (Sandbox Code Playgroud)
Ste*_*itt 14
您正在寻找tail
:
ls -ltr | tail -n 1
Run Code Online (Sandbox Code Playgroud)
这将只显示ls -ltr
's 输出的最后一行。您可以通过更改后的值来控制行数-n
;如果你-n 1
完全省略,你会得到十行。
使用tail
而不是的好处sed
是tail
从文件的末尾开始直到它到达换行符,而sed
必须遍历整个文件直到它到达末尾,然后才返回自找到最后一个换行符以来的文本。