正则表达式删除行包含字符

正则表达式删除行包含字符

我有一个返回给我的值列表,它们都以 | 结尾,如下所示:

testdata1-old |
testdata |
test2-old|

我想删除所有包含 -old 的行。我可以使用什么正则表达式?

答案1

我认为您对正则表达式有误解。从根本上讲,它们回答了“此文本是否看起来像此特定模式?”的问题。有许多工具使用正则表达式来处理文本,例如sedgrep,我认为您混淆了这两者。

您需要做的是形成一个与要过滤的文本相匹配的正则表达式。例如,您要查找的表达式是^.*-old\|$,然后使用类似这样的内容过滤行。

foreach line in input_file
    if regex.matches(line, "^.*-old\|$") then
        continue
    else
        print line

答案2

你需要的是

grep -v -E '^.*-old\|$' 输入文件 > 输出文件

或者应该做同样的事情:

egrep -v'^.*-old\|$' 输入文件 > 输出文件

现在,困难的部分是找到一个可以从 cmd.exe 或 Powershell 运行的Windowsgrep版本。egrep

相关内容