从大型文本文件中删除不需要的行的最简单方法

从大型文本文件中删除不需要的行的最简单方法

我有一个超过 30 MB 的大型文本文件。我想删除所有不符合某些特定条件的行,例如没有字符串“START”的行。

做到这一点最简单的方法是什么?

答案1

如果模式真的那么简单,那么grep -v就可以了:

grep -v START bigfile.txt > newfile.txt

newfile.txt 将包含 bigfile.txt 中的所有内容,除了带有“START”的行。

(如果不明显的话,您可以在终端或其他命令行工具中执行此操作)

答案2

最初的问题询问如何删除与模式不匹配的行。换句话说,如何保留与模式匹配的行。因此,不需要-v

grep START infile.txt > outfile.txt

请注意,grep 可以使用正则表达式进行更强大的模式匹配。不过语法有点难懂。

答案3

使用带有-i参数的 GNU sed。

答案4

对于 Windows 命令提示符(help find用于选项):

查找/v“ START”原始文件.txt>新文件.txt

对于 Linux、OS X 等(man grep选项):

grep -v "START" 原始文件.txt > 新文件.txt

对于更复杂的文本匹配,grep它提供的功能比 丰富得多find。如果您使用的是 Windows,您可以轻松找到 的端口grep,或者您可以使用 Windows 的findstr代替find

相关内容