gpt4 book ai didi

regex - 使用 sed 删除具有特定正则表达式的文件中的所有行

转载 作者:行者123 更新时间:2023-11-29 09:22:58 26 4
gpt4 key购买 nike

我们想删除与以下“正则表达式输入”匹配的所有行,并将它们放入新文件中:

Hi|thisisatest|11

我们有什么:

check='([^[:space:]]+)|([^[:space:]]+)|([^[:space:]]+)'
sed '/$check/d' test.txt > test_new.txt

它目前不起作用。

编辑:

我们得到了以下 test.txt:

Jack|Miles|44
Carl|13
Robert|Whittaker|87
John|2
Frank|65

我们要删除 Jack|Miles|44Robert|Whittaker|87,它们与正则表达式匹配(如果正则表达式正确)。

最佳答案

正确的 BRE 正则表达式是:

check='[^[:space:]]*|[^[:space:]]*|[^[:space:]]*'

然后将其用作:

sed "/$check/d" file
Carl|13
John|2
Frank|65

btw awk 可以在不使用正则表达式的情况下更好地处理它。只需使用 | 作为分隔符并删除所有没有 2 个字段的行:

awk -F '|' 'NF==2' file

Carl|13
John|2
Frank|65

关于regex - 使用 sed 删除具有特定正则表达式的文件中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42815623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com