Linux 逐行比较两个文件,并使用shell脚本找到最大和最小的文件数
我有两个文件,每行都有一个数字,需要比较两个文件以找到最大和最小的数字 例如:- 文件1 文件2 需要得到66作为最大数,2作为最小数Linux 逐行比较两个文件,并使用shell脚本找到最大和最小的文件数,linux,shell,unix,Linux,Shell,Unix,我有两个文件,每行都有一个数字,需要比较两个文件以找到最大和最小的数字 例如:- 文件1 文件2 需要得到66作为最大数,2作为最小数 如果有人在我需要关注的命令方面指导我,那将是一个很大的帮助,因为我刚刚开始学习shell脚本 使用awk: $ head f1 f2 ==> f1 <== 10 32 14 ==> f2 <== 9 42 4 $head f1 f2 ==>f1 f2您可以使用: sort -n file1 file2 > _sorted.tmp
如果有人在我需要关注的命令方面指导我,那将是一个很大的帮助,因为我刚刚开始学习shell脚本 使用
awk
:
$ head f1 f2
==> f1 <==
10
32
14
==> f2 <==
9
42
4
$head f1 f2
==>f1 f2您可以使用:
sort -n file1 file2 > _sorted.tmp
min=$(head -1 _sorted.tmp)
max=$(tail -1 _sorted.tmp)
没有临时文件:
arr=( $(sort -n file1 file2) )
min=${arr[1]}
max=${arr[@]:(-1)}
连锁反应:
sort --numeric --unique nu1 nu2 | sed '/^$/d' | sed -n '1p;$p'
| | | | | | | | |
| | | | | | | | +---- print last
| | | | | | | +------- print first
| | | | | | +----------- no print
| | | | | +----------------------- remove empty
| | | | +------------------------------------ file2
| | | +--------------------------------------- file1
| | +---------------------------------------------- unique
| +-------------------------------------------------------- numeric
+--------------------------------------------------------------- sort
如果100%确定任何文件中没有空行,则可以删除sed'/^$/d'
部分。如果是,则还可以从排序
中删除唯一
换句话说,满足这两个标准同样有效:
sort --numeric nu1 nu2 | sed -n '1p;$p'
简而言之:
sort -n nu1 nu2 | sed -n '1p;$p'
如果不想存储值,也可以是一行
排序-n文件1文件2 |头-1
sort-n file1 file2 | tail-1如果不编码,至少提供输入和输出的示例。是否需要从两个文件的所有数字中找到一个最大和一个最小的数字?是的,并且每行在两个文件中只包含一个数字,因此标题具有误导性,不需要“逐行”比较?谢谢,我其实在想是否应该写这样一个简单的答案:)啊,很抱歉忽略了这一点,它现在已经修好了。
sort --numeric --unique nu1 nu2 | sed '/^$/d' | sed -n '1p;$p'
| | | | | | | | |
| | | | | | | | +---- print last
| | | | | | | +------- print first
| | | | | | +----------- no print
| | | | | +----------------------- remove empty
| | | | +------------------------------------ file2
| | | +--------------------------------------- file1
| | +---------------------------------------------- unique
| +-------------------------------------------------------- numeric
+--------------------------------------------------------------- sort
sort --numeric nu1 nu2 | sed -n '1p;$p'
sort -n nu1 nu2 | sed -n '1p;$p'