gpt4 book ai didi

linux - 在linux中从具有1列的文本文件中删除具有2列的文件中的整行

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

电子

文件A

abc 123

定义456

吉789

文件B

定义

结果文件

abc 123

吉789

我用 sed、grep 尝试过,但就是不行。我刚刚说过学习linux,但找不到类似的东西。

谢谢

//*------------

grep -wvf 有效,但现在我发现我在前面有一个“#”的情况下遇到了问题。这些也将被删除。通过修改为 grep -wxvf,该命令根本不起作用。除了 grep 之外我还需要其他命令吗?

最佳答案

awk 'FNR==NR{a[$0];next}(!($1 in a)){print}' fileb filea

{a[$0];next} - 该 block 执行直到 FNR==NR(这意味着对于 fileb 的所有行)。 “next”确保在此 block 之后不会执行任何代码。

在 fileb 行的末尾,您有一个关联数组,其键为 filb 中的行,值为 null。

然后开始处理 filea 中的行。

{print} 将对 filea 中的所有行执行,但条件是 (!($1 in a))这意味着仅当 filea 的第一个字段作为关联数组 a 中的键存在时才打印 filea 中的行

关于linux - 在linux中从具有1列的文本文件中删除具有2列的文件中的整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588348/

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