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

vir*_*tue 7 unix bash grep

我想在文件中将包含特定单词(如"foo")的最后十行写入一个名为的新文本文件中boo.txt.

如何在unix终端的命令提示符下实现这一点?

Mat*_*Mat 21

你可以使用greptail:

grep "foo" input.txt | tail -n 10 > boo.txt
Run Code Online (Sandbox Code Playgroud)

打印的默认行数tail为10,因此-n 10如果您总是想要那么多,则可以省略该部分.

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

如果要附加boo.txt,则应更改要使用的重定向>>.

grep "bar" input.txt | tail -n 42 >> boo.txt
Run Code Online (Sandbox Code Playgroud)

head如果您正在寻找第一次出现的字符串,您可能也会感兴趣.