我只是想知道我需要在终端中输入什么命令才能读取文本文件,删除所有不包含某个关键字的行,然后将这些行打印到新文件中。例如,关键字是“system”。我希望能够将包含系统的所有行打印到新的单独文件中。感谢
答案 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”这样的字词,但这是一个很好的起点。