我想在文件中将包含特定单词(如“foo”)的最后十行写入以boo.txt
命名的新文本文件。
如何在unix终端的命令提示符下实现此目的?
答案 0 :(得分:21)
您可以使用grep
和tail
:
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