提取文件中与“foo”匹配的最后 10 行

发布于 2024-10-27 04:17:45 字数 101 浏览 1 评论 0原文

我想将文件中包含特定单词(例如“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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请止步禁区 2024-11-03 04:17:45

可以使用greptail

grep "foo" input.txt | tail -n 10 > boo.txt

tail默认打印的行数是10,所以可以省略-n 10 部分,如果你总是想要那么多。

> 重定向将创建 boo.txt(如果它不存在)。如果它在运行之前确实存在,则该文件将首先被截断(即清空)。因此,boo.txt 在任何情况下都最多包含 10 行文本。

如果您想附加到 boo.txt,则应更改重定向以使用 >>

grep "bar" input.txt | tail -n 42 >> boo.txt

如果您正在查找字符串的第一次出现,您可能还会对 head 感兴趣。

You can use grep and tail:

grep "foo" input.txt | tail -n 10 > boo.txt

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 create boo.txt if it didn't exist. If it did exist prior to running this, the file will be truncated (i.e. emptied) first. So boo.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 >>.

grep "bar" input.txt | tail -n 42 >> boo.txt

You might also be interested in head if you are looking for the first occurrences of the string.

奢华的一滴泪 2024-11-03 04:17:45
grep foo /path/to/input/file | tail > boo.txt
grep foo /path/to/input/file | tail > boo.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文