提取文件中与“foo”匹配的最后 10 行
我想将文件中包含特定单词(例如“foo”)的最后十行写入名为例如 boo.txt
的新文本文件。
如何在 unix 终端的命令提示符下实现此目的?
I want to write the last ten lines which contain a spesific word such as "foo" in a file to a new text file named for instance boo.txt
.
How can I achieve this in the command prompt of a unix terminal?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以使用
grep
和tail
:tail
默认打印的行数是10,所以可以省略-n 10
部分,如果你总是想要那么多。>
重定向将创建boo.txt
(如果它不存在)。如果它在运行之前确实存在,则该文件将首先被截断(即清空)。因此,boo.txt
在任何情况下都最多包含 10 行文本。如果您想附加到
boo.txt
,则应更改重定向以使用>>
。如果您正在查找字符串的第一次出现,您可能还会对
head
感兴趣。You can use
grep
andtail
:The default number of lines printed by
tail
is 10, so you can omit the-n 10
part if you always want that many.The
>
redirection will createboo.txt
if it didn't exist. If it did exist prior to running this, the file will be truncated (i.e. emptied) first. Soboo.txt
will contain at most 10 lines of text in any case.If you wanted to append to
boo.txt
, you should change the redirection to use>>
.You might also be interested in
head
if you are looking for the first occurrences of the string.