SED或其他编辑器 - 从Windows上的文件中删除字符串

时间:2017-01-20 17:43:22

标签: text sed grep editor findstr

我需要在文本文件中找到一个字符串,删除包含它的行,然后保存文件。找到(读取)另一个文本文件的字符串,其中包含数百个不同的字符串,每行一个。该过程将从文件中的第一个字符串继续到最后一个字符串。

推荐使用任何(希望易于使用)文本编辑器(在Windows操作系统上)?完成任务。

我没有进行严肃的日常编辑。如果可以通过易于使用但仍然可靠的编辑器完成任务,我会非常高兴。

非常感谢, 弗兰克

3 个答案:

答案 0 :(得分:1)

你可以试试notepad ++,因为它有很多插件,也是一个很棒的搜索算法。我做了一个类似的任务,我不得不做很多搜索/替换的东西,并使用我从互联网上挖出来的插件,不能完全记住这个名字(尝试google-ing我认为它' s用于记事本++或类似的替代品。)

答案 1 :(得分:0)

使用sed:

sed -n '/PATTERN/n;p' FILE > FILE.new # then copy FILE.new to FILE

告诉sed默认情况下不输出任何内容(-n),找到模式(/PATTERN/)并在找到时跳过此行(n),否则打印行({{ 1}})。如果您有;p,则可以直接致电

GNU sed

由于(sed -i -n '/PATTERN/n;p' FILE` )而自动更新文件。

答案 2 :(得分:0)

在unix / linux / cygwin上:

grep -v -f pattern_file unmodified_file > new_file

从unmodified_file中删除包含pattern_file中模式的所有行,写入new_file。

grep -v输出与任何模式不匹配的行。 -f从文件中读取模式。

在Windows上,这似乎等同于在命令提示符下运行它:

FINDSTR /V /G:pattern_file unmodified_file > new_file

那就是它。如果您已经有两个源文件,那么它就是一个单行文件。

pattern_file将是空格和区分大小写的,除非您深入研究其他选项,这些选项用FINDSTR /?

描述