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

时间:2011-03-27 11:20:15

标签: bash unix grep

我想在文件中将包含特定单词(如“foo”)的最后十行写入以boo.txt命名的新文本文件。

如何在unix终端的命令提示符下实现此目的?

2 个答案:

答案 0 :(得分:21)

您可以使用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感兴趣。

答案 1 :(得分:1)

grep foo /path/to/input/file | tail > boo.txt