gpt4 book ai didi

linux - 根据值的长度删除条目

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:53 24 4
gpt4 key购买 nike

如果最后一列包含的值少于 2 个,则整行将被删除

示例数据:

18106|1.0.4.0/22|223 121 1836
3549|1.0.10.0/24|421 21
5413|1.0.0.0/16|789
2152|1.4.0.0/16|745 89 1876
3549|1.0.8.0/22|680

预期输出:

18106|1.0.4.0/22|223 121 1836
3549|1.0.10.0/24|421 21
2152|1.4.0.0/16|745 89 1876

有什么办法吗?

最佳答案

如果单个值后面没有空格,则可以删除最后一个 | 之后没有空格的行:

grep -v '|[^ |]*$'
  • [...] 是一个字符类。 [ |] 匹配空格或 |
  • 字符类中的
  • ^ 对其取反,即 [^ |] 匹配除空格或 | 之外的任何内容。
  • * 表示“重复零次或多次”
  • $ 匹配行尾
  • -v 显示与模式不匹配的行
  • 所以整个事情的意思是“跳过包含竖线的行,后跟与空格和竖线不同的字符,直到行尾”

但是,它不适用于您的示例数据,因为 789 之后有一个空格。因此,请检查最后一个 | 之后是否有一个空格,后跟非空格:

grep '|[^ |]\+ [^ |]\+' 

这里,\+表示“重复一次或多次”。

关于linux - 根据值的长度删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44874650/

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