【发布时间】:2018-08-08 13:51:48
【问题描述】:
我在子文件夹中有大量文件,每个文件包含三列数字。我需要在 $2 中找到最大的数字,然后打印 $1 和 $2 列。
这是我得到的:
awk 'FNR > 1 {max=dist=0; if($2>max){dist=$1; max=$2}}END{print FILENAME " distance: " dist " max: " max}' ./nVT_*K/rdf_rdf_aam_aam_COM.dat
这可行,但是只打印最后一个输入文件的值。我每个人都需要一个。
使用 bash for 循环进行迭代会为 awk 部分生成“找不到命令”。我目前正在将回显的 for 循环输出传输到文件并作为脚本运行,尽管从长远来看这不是一个可行的计划。
任何人都可以帮忙折腾一下,这样它就可以在不同的子文件夹中获取一堆输入文件,并从每个文件中打印出预期的结果:
./nVT_277K/rdf_rdf_aam_aam_COM.dat distance: 4.650000 max: 1.949975
./nVT_283K/rdf_rdf_aam_aam_COM.dat distance: 4.650000 max: 1.943047
./nVT_289K/rdf_rdf_aam_aam_COM.dat distance: 4.650000 max: 1.907280
...
...
...
我非常感谢您在此提供的任何意见。谢谢
【问题讨论】: