gpt4 book ai didi

linux - 在子文件中查找最小值和最大值并将结果与​​父文件相关联

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:58 25 4
gpt4 key购买 nike

我有一个如下所示的输入文件。

element  materl(local) 
ipt-shl stress sig-xx sig-yy sig-zz sig-xy sig-yz sig-zx plastic
state strain
1346995- 25
1- 2 elastic 5.9309E-01 -1.0920E-02 0.0000E+00 2.4431E-04 2.3158E-03 1.0608E-03 7.4616E-02
2- 2 elastic 6.1335E-01 -9.1746E-03 0.0000E+00 -4.2870E-04 2.3158E-03 1.0608E-03 7.4089E-02
3- 2 elastic 6.4586E-01 -7.3146E-03 0.0000E+00 -1.2961E-03 2.3158E-03 1.0608E-03 7.3794E-02
4- 2 elastic 6.7056E-01 -1.5564E-03 0.0000E+00 -1.0469E-03 2.3158E-03 1.0608E-03 7.3682E-02
5- 2 elastic 6.7493E-01 7.1420E-03 0.0000E+00 1.7934E-03 2.3158E-03 1.0608E-03 7.3708E-02
6- 2 elastic 6.7828E-01 1.4787E-02 0.0000E+00 5.4871E-03 2.3158E-03 1.0608E-03 7.3825E-02
7- 2 elastic 6.8092E-01 1.9656E-02 0.0000E+00 8.2580E-03 2.3158E-03 1.0608E-03 7.4210E-02
1346996- 25
1- 2 elastic 6.0586E-01 -4.6476E-03 0.0000E+00 9.4464E-03 -1.9585E-03 -5.1396E-03 7.4299E-02
2- 2 elastic 6.2548E-01 -5.1646E-03 0.0000E+00 6.3450E-03 -1.9585E-03 -5.1396E-03 7.4147E-02
3- 2 elastic 6.5631E-01 -5.3780E-03 0.0000E+00 1.1554E-03 -1.9585E-03 -5.1396E-03 7.4000E-02
4- 2 elastic 6.7186E-01 -1.5611E-03 0.0000E+00 -3.7045E-03 -1.9585E-03 -5.1396E-03 7.3999E-02
5- 2 elastic 6.7481E-01 5.1501E-03 0.0000E+00 -7.2939E-03 -1.9585E-03 -5.1396E-03 7.4107E-02
6- 2 elastic 6.7769E-01 1.1733E-02 0.0000E+00 -1.0146E-02 -1.9585E-03 -5.1396E-03 7.4238E-02
7- 2 elastic 6.7946E-01 1.5462E-02 0.0000E+00 -1.1218E-02 -1.9585E-03 -5.1396E-03 7.4362E-02

等等。

我想做的是只选择 plastic strain 下的列,将其放入另一个文件,然后从中找出最小值和最大值。问题是,当我转移到另一个文件时,我失去了身份最小值的最大值位于 7 行的顶部,这是元素编号。我用过

awk '{ print $10 }' elout > Plastic.k    # Shifting the required field to another file
sed -i -e '/^$/d' Plastic.k # removing all the empty lines
sed -n '/^[0-9]\{1\}/p' Plastic.k > tt # removing all lines with the first letter alphasbet.
mv tt Plastic.k

现在我必须从这个文件 Plastic.k 中找到最大值和最小值,然后在 elout 文件(原始文件)中找到该事件的元素编号(标识)。

有什么建议吗?

附言我所说的身份是指一组 7 行顶部的 7 位数字,后跟 - 符号 -

输出的形式是

min=7.3682E-02 at 1346995-25
max=7.4616E-02 at 1346995-25

它不会是 1346996-25,因为它在字段 10 中既没有最小值也没有最大值。我从输入文件中获得这样的数据,并希望在输出文件中得到输出。

如果这种输入格式像下面这样稍微改变一下,Potong 的答案是行不通的。我尝试了很多但无法理解。新的输入如下。

它就像一样。

element  materl(local)   
ipt-shl stress sig-xx sig-yy sig-zz sig-xy sig-yz sig-zx plastic
state strain
699425- 13
1- 16 elastic 4.9281E-01 5.9754E-02 0.0000E+00 -2.7210E-02 1.4192E-02 1.2603E-01 1.7112E-02
2- 16 elastic 4.6965E-01 4.8664E-02 0.0000E+00 -2.1255E-02 1.4192E-02 1.2603E-01 1.2814E-02
3- 16 elastic 4.3029E-01 2.6264E-02 0.0000E+00 -7.2280E-03 1.4192E-02 1.2603E-01 7.1400E-03
4- 16 elastic 3.1283E-01 -1.4079E-02 0.0000E+00 1.3315E-02 1.4192E-02 1.2603E-01 1.9514E-03
5- 16 elastic -3.4911E-01 -2.9740E-02 0.0000E+00 3.7036E-02 1.4192E-02 1.2603E-01 7.5132E-04
6- 16 elastic -4.5764E-01 -7.0891E-02 0.0000E+00 3.6667E-02 1.4192E-02 1.2603E-01 7.1070E-03
7- 16 elastic -4.8788E-01 -8.1926E-02 0.0000E+00 4.1023E-02 1.4192E-02 1.2603E-01 1.1321E-02
699426- 13
1- 16 elastic 3.5073E-01 6.2039E-03 0.0000E+00 -9.4607E-02 -3.4023E-03 -2.4265E-02 1.4478E-02
2- 16 elastic 3.5540E-01 8.6871E-03 0.0000E+00 -7.2062E-02 -3.4023E-03 -2.4265E-02 1.0498E-02
3- 16 elastic 3.6224E-01 7.2871E-03 0.0000E+00 -3.5263E-02 -3.4023E-03 -2.4265E-02 6.1994E-03
4- 16 elastic 2.3782E-01 -1.7772E-02 0.0000E+00 5.9101E-03 -3.4023E-03 -2.4265E-02 1.6298E-03
5- 16 elastic -2.3065E-01 -3.2565E-02 0.0000E+00 6.0890E-02 -3.4023E-03 -2.4265E-02 1.3029E-03
6- 16 elastic -3.0923E-01 -3.0984E-02 0.0000E+00 9.0408E-02 -3.4023E-03 -2.4265E-02 5.3680E-03
7- 16 elastic -3.3606E-01 -2.5992E-02 0.0000E+00 1.0568E-01 -3.4023E-03 -2.4265E-02 9.3878E-03

唯一的区别是在这个输出中我们有 16 而不是数字 1 到 7 的 2。

请建议我更正。

最佳答案

这可能对你有用:

sed '/^\([0-9]\{7\}\).*/,+7!d;//{s//\1/;h;d};s/.* //;G;s/^\(.*\)\n\(.*\)/\2 \1/' file |
sort -g |
sed 'h;N;N;N;N;N;N;s/.*\n//;H;g;s/\n\S*//'
1346995 7.3682E-02 7.4616E-02
1346996 7.3999E-02 7.4362E-02

编辑:

引用下面的评论和修改后的问题中显示的请求输出,这里是修改后的解决方案:

sed '/^\([0-9]\{7\}-\)\s*\([0-9]*\).*/,+7!d;//{s//at \1\2/;h;d};s/.* //;G;s/\n/ /' file| 
sort -g |
sed '1s/^/min=/p;$s/^/max=/p;d'
min=7.3682E-02 at 1346995-25
max=7.4616E-02 at 1346995-25

关于linux - 在子文件中查找最小值和最大值并将结果与​​父文件相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395538/

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