gpt4 book ai didi

linux - 如何使用 IF/Then Bash 命令比较 2 个文件中的行数

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

我想比较两个单独文件的行数。虽然我尝试使用 wc -l相比之下,我很难让它正常工作。

我有:

if [ "$(wc -l file1.txt)" == "$(wc -l file2.txt)" ]; then echo "Warning: No Match!"; fi

但是,if/then 语句不会返回正确的输出。

如果文件 1 和文件 2 的行数相同,那么编写此代码的正确方法是什么?

文件1.txt:

example1
example2
example3

文件2.txt:

example4
example5
example6

更新:我们发现 wc -l命令必须返回一个数字仅用于比较。与问题 Why should there be a space after '[' and before ']' in Bash? 不同,这道题需要使用wc -l获取一个整数,可以比较不同文件中的行数。

最佳答案

您可以尝试关注并告诉我这是否对您有帮助。

if [ "$(wc -l < file1.txt)" -eq "$(wc -l < file2.txt)" ]; then echo 'Match!'; else echo 'Warning: No Match!'; fi

以上代码示例:假设我们有以下输入文件:

cat file1.txt
I
am
Cookie

cat file2.txt

I
am
Cookie

现在,由于我们可以看到两个文件中的行数不相等,因此将出现以下结果。

if [ "$(wc -l < file1.txt)" -eq "$(wc -l < file2.txt)" ]; then echo 'Match!'; else echo 'Warning: No Match!'; fi
Warning: No Match!

现在,如果我们使文件的两行现在相等,如下所示。

cat file1.txt
I
am
Cookie
cat file2.txt
I
am
Cookie

现在,当我们运行相同的代码时,它将给出如下结果。

if [ "$(wc -l < file1.txt)" -eq "$(wc -l < file2.txt)" ]; then echo 'Match!'; else echo 'Warning: No Match!'; fi
Match!

关于linux - 如何使用 IF/Then Bash 命令比较 2 个文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678680/

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