gpt4 book ai didi

linux - 如果字符串每行出现一次,如何删除一行?

转载 作者:可可西里 更新时间:2023-11-01 11:51:14 26 4
gpt4 key购买 nike

我需要删除在同一行中恰好包含一次字符串的所有行。如果找不到匹配项,或者即使字符串匹配两次,我也会保留该行。

我正在尝试删除包含字符串“priority”的行,并且仅当该字符串每行只出现一次时。有没有办法用 awk 或 sed 来做?此命令未提供所需的输出 awk -F'priority' 'NF==1' filename

输入文件:

shopping_priority+brands,baby_priority_brands

shopping_priority+brands,baby_shopping_brands

men_shopping_local,women_shopping_local

预期输出:

shopping_priority+brands,baby_priority_brands
men_shopping_local,women_shopping_local

更新:现在我想检查多个单词而不是 "priority"。例如,我还想检查 {priority,women,shopping} 并删除“priority”或“women”或“shopping”在一行中只出现一次的行。要检查的单词列表可以在以后扩展。

输入:

shopping_priority+brands,baby_priority_brands

shopping_priority+brands,baby_shopping_brands

men_shopping_local,women_shopping_local

pla%20electronics_bfhrg_shopping,pla_electronics_shopping

现在我的预期输出应该是:

pl%20electronics_bfhrg_shopping,pla_electronics_shopping

最佳答案

应该这样做:

awk -F"priority" 'NF!=2' file
shopping_priority+brands,baby_priority_brands
men_shopping_local,women_shopping_local

通过将字段分隔符设置为priority,所有具有一个priority 的行将有两个字段。 NF!=2 打印所有没有优先级

的行

关于linux - 如果字符串每行出现一次,如何删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57644138/

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