gpt4 book ai didi

linux - 输入文件某些行中带有行号标记的最小值和最大值

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

我想找到行号 2000 和 3000 之间的最小值。

我想找到值的最小值和最大值,当找到最小值和最大值时,我还需要找到找到它的行。然后我想转到最大或最小包含行上方的一行并输出同一行 6 个整数中的第一个整数。

我的输入采用以下形式。

*KEYWORD
$TIME_VALUE = 1.4000002e+001
$STATE_NO = 15
$Output for State 15 at time = 14
*ELEMENT_SHELL_THICKNESS
1346995 25 1457683 1471891 1457727 1471929
9.953265e-001 9.953265e-001 9.953265e-001 9.953265e-001
1346996 25 1471891 1457685 1471930 1457727
9.953963e-001 9.953963e-001 9.953963e-001 9.953963e-001
1346997 25 1457685 1471892 1471931 1471930
9.953437e-001 9.953437e-001 9.953437e-001 9.953437e-001

所以输出可能是

min=9.953265e-001  on line  07   at  1346995
max=9.953963e-001 on line 09 at 1346996

PS:我可以找到数组的最小值和最大值,但处理这个输入对我来说很难。等待专家建议。

最佳答案

我不明白第 2000 行和第 3000 行之间的要求,但如果它在您的示例中第 6 行和第 11 行之间:

cat your_file | awk '
NR >= 6 && NR <= 11{at=$1;getline
if (max < $1){max=$1;max_line=NR;max_at=at}
if (min > $1){min=$1;min_line=NR;min_at=at}}
NR == 7{min=$1;min_line=NR;min_at=at}
END{
printf "min=%-13e on line %02d at %8d\n", min, min_line, min_at
printf "max=%-13e on line %02d at %8d\n", max, max_line, max_at}'

最大值不会在第 9 行吗?

(各位,请不要无用地使用 cat me,我发现这样更清楚;-)。)

关于linux - 输入文件某些行中带有行号标记的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262454/

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