gpt4 book ai didi

bash - 如何使用 bash 脚本在一个文件中找到行而不在另一个文件中找到行?

转载 作者:行者123 更新时间:2023-11-29 08:46:41 24 4
gpt4 key购买 nike

假设文件 1:

#include "first.h"
#include "second.h"
#include "third.h"

// more code here
...

假设文件 2:

#include "fifth.h"
#include "second.h"
#include "eigth.h"

// more code here
...

我想获取包含在文件 2 中但不包含在文件 1 中的标题,只有那些行。因此,运行时,文件 1 和文件 2 的差异将产生:

#include "fifth.h"
#include "eigth.h"

我知道如何在 Perl/Python/Ruby 中完成它,但我想在不使用其他编程语言的情况下完成它。

最佳答案

这是单行,但不保留顺序:

comm -13 <(grep '#include' file1 | sort) <(grep '#include' file2 | sort)

如果需要保留顺序:

awk '
!/#include/ {next}
FILENAME == ARGV[1] {include[$2]=1; next}
!($2 in include)
' file1 file2

关于bash - 如何使用 bash 脚本在一个文件中找到行而不在另一个文件中找到行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6932544/

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