终端命令查找包含特定单词的行?

时间:2012-01-31 04:24:38

标签: linux text terminal

我只是想知道我需要在终端中输入什么命令才能读取文本文件,删除所有不包含某个关键字的行,然后将这些行打印到新文件中。例如,关键字是“system”。我希望能够将包含系统的所有行打印到新的单独文件中。感谢

4 个答案:

答案 0 :(得分:20)

grep是你的朋友。

例如,你可以这样做:

grep system <filename> > systemlines.out

man grep,你也可以得到更多有用的信息(例如:行号,1 +行之前,1 +行之后,否定 - 即:所有不包含grep的行等等)

如果您运行的是Windows,则可以安装cygwin,也可以为grep找到win32二进制文件。

答案 1 :(得分:3)

以下grep命令将解决您的问题

grep -i yourword filename1 > filename2

with -i for case insensitiveness

without -i for case sensitiveness

要了解grep如何在你的服务器上工作,请通过以下命令参考你的服务器上的手册页

man grep

答案 2 :(得分:3)

grep '\<system\>'

将搜索包含 word 系统的行,而不是系统作为子字符串。

答案 3 :(得分:-1)

grep“system”filename&gt;新文件名

您可能希望不要包含像“dysystemic”这样的字词,但这是一个很好的起点。