一个用于查找两个文件的第一行是否相同的行

Sta*_*ngo 2 unix command-line-interface

是否可以简单地使用 head 和 cmp (或其他方式)来实现这一点?

Kyl*_*ndt 5

您可以使用进程替换diffhead内部进程替换的退出状态:

[kbrandt@localhost ~]$ echo arf > foo
[kbrandt@localhost ~]$ echo arf > foo1
[kbrandt@localhost ~]$ diff <(head -n1 foo) <(head -n1 foo1)
[kbrandt@localhost ~]$ echo $?
0
[kbrandt@localhost ~]$ echo foo > foo1
[kbrandt@localhost ~]$ diff <(head -n1 foo) <(head -n1 foo1)
1c1
< arf
---
> foo
[kbrandt@localhost ~]$ echo $?
1
[kbrandt@localhost ~]$ 
Run Code Online (Sandbox Code Playgroud)

Diff 比较文件,如果退出状态为零则文件匹配。非零意味着它们不匹配或运行 diff 时出现错误,这似乎不太可能。$?是一个 shell 变量,它具有上一个命令的退出状态。> /dev/null如果您不想在屏幕上看到它,您可以通过添加到 diff 命令的末尾来重定向 diff 的输出:

[kbrandt@localhost ~]$ diff <(head -n1 foo) <(head -n1 foo1) > /dev/null
[kbrandt@localhost ~]$ echo $?
1
Run Code Online (Sandbox Code Playgroud)