回到my previous question,我发现问题并没有完全解决.这是问题所在:

我有名为RUN1,RUN2和RUN3的目录

每个目录都有一些文件.目录RUN1具有文件mod1_1.csv,mod1_2.csv,mod1_3.csv.目录RUN2具有文件mod2_1.csv,mod2_2.csv,mod3_3.csv等.

mod1_1.csv文件的内容如下所示:

5.71 6.66 5.52 6.90

5.78 6.69 5.55 6.98

5.77 6.63 5.73 6.91

而mod1_2.csv看起来像这样:

5.73 6.43 5.76 6.57

5.79 6.20 5.10 7.01

5.71 6.21 5.34 6.81

在RUN2中,mod2_1.csv如下所示:

5.72 6.29 5.39 5.59

5.71 6.10 5.10 7.34

5.70 6.23 5.23 6.45

并且mod2_2.csv看起来像这样:

5.72 6.29 5.39 5.69

5.71 6.10 5.10 7.32

5.70 6.23 5.23 6.21

我的目标是为每个RUN *目录获取第4列的最小值的行,并将其和将其写入新的.csv文件的模型写入.现在,我有以下代码:

#!/bin/bash

resultfile="best_results_mlp_2.txt"

for d in $(find . -type d -name 'RUN*' | sort);

do

find $d -type f -name 'mod*' -exec sort -k4 {} -g \; | head -1 >> "$resultfile"

done

但是它并不总是返回第4列的最小值(我浏览了文件并进行了检查),并且不包括包含最小数字的文件名.为了澄清,我想要一个包含以下内容的.csv文件:

5.73 6.43 5.76 6.57 mod1_2.csv

5.72 6.29 5.39 5.59 mod2_1.csv

解决方法:

如果要从所有文件中获取最小值,则必须立即对所有内容进行排序.该命令当前按文件对文件进行排序,因此您将在第一个排序的文件中获得最小值.

检查之间的区别

find "$d" -type f -name 'mod*' -exec sort -k4 -g {} +

find "$d" -type f -name 'mod*' -exec sort -k4 -g {} \;

另外,除非确实需要,否则建议使用-n而不是-g.

查看信息coreutils的“一般调用”的–general-numeric-sort部分,以获取更多详细信息.

编辑:刚刚检查了您以前的问题的链接,现在我看到您需要使用–general-numeric-sort

就是说,这是一种将相应文件名放入各行中的方法,以便在输出中使用它:

find "$d" -type f -name 'mod*' -exec awk '{print $0, FILENAME}' {} \;|sort -k4 -g |head -1 >> "$resultfile"

本质上,awk是分别为每个文件调用的. Awk打印文件的每一行,并在其后附加相应的文件名.然后将所有这些行传递进行排序.

注意:上面的代码将打印文件名及其找到文件的路径.如果您只想获取文件的基本名称,则可以改用以下awk命令(其余与上面相同):

awk 'FNR==1{ cnt=split(FILENAME, arr, "/"); basename=arr[cnt] } { print $0, basename}'

标签:python,bash

python递归列文件_python-Bash:从最大列递归地向文件写入一行相关推荐

  1. python中的with open读取表格文件_python 使用 with open() as 读写文件

    读文件: 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f = open('E:\python\python\test.tx ...

  2. python增加一列数据_python数据怎么添加列?

    python在DataFrame数据中添加列的方法: 1.使用concat方法在数据中添加列 concat方法相当于数据库中的全连接(union all),它不仅可以指定连接的方式(outer joi ...

  3. python 逐行读取文件_Python fileinput模块:逐行读取多个文件

    前面章节中,我们学会了使用 open() 和 read()(或者 readline().readlines() )组合,来读取单个文件中的数据.但在某些场景中,可能需要读取多个文件的数据,这种情况下, ...

  4. 利用python处理pdf文本_Python用于NLP :处理文本和PDF文件

    原标题:Python用于NLP :处理文本和PDF文件 提示:代码图片可以点击全屏查看,双指操作还可以放大缩小. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从 ...

  5. python写入pdf文件_Python用于NLP :处理文本和PDF文件

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for ...

  6. python指定位置写入文件_Python中如何在指定目录下进行文件的读写操作

    一.python的简单读写操作 在python中,可以使用open函数,打开一个已经存在的文件,或者创建一个新文件.常用操作示例如下: # 在当前目录下创建并打开一个文件夹,若文件已有则打开文件tes ...

  7. python打开电脑文件_python办公自动化:自动打开word文档-docx文件怎样打开

    上节python办公自动化:python自动化word快速入门,对python自动化word的操作做了快速入门,从本小节开始,逐步细致的分解讲解每一个关键步骤. python自动化word 使用文档 ...

  8. python中open函数打开文件_Python open函数详解:打开指定文件

    掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了.在进行文件读写之前,首先要打开文件. Python 提供了一个内置的 open() 函数,该函数用于打开指定文件. open() 函 ...

  9. python 打开路径下文件_Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法...

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...

  10. python的open打开中文文件_Python笔记 —— 使用open打开和操作txt文件

    打开:有两种方式 with open(r"data.txt", "r", encoding="utf-8") as f: f = open( ...

最新文章

  1. Python自动化开发学习6
  2. Content-Disposition 响应头,设置文件在浏览器打开还是下载
  3. Python 调试 PDB
  4. Keepalived实现高可用Nginx反向代理
  5. MVC设计之MVC设计模式(介绍)
  6. CentOS7.2 network.service NetworkManager.service 冲突
  7. JAVA快速排序算法实现
  8. Dubbo 2.7.7 发布,FastJson 升级了!
  9. NERO8.3.6.0(官方完整版+序列号)
  10. TCP/IP、Http的区别--(转自任智康)
  11. (半)自动化爬虫系统该包含的功能点及相关介绍
  12. WPF 做的天干地支 乾坤八卦 罗盘
  13. 【git】cherry-pick详解
  14. 前端vs图片 3 jpg、png、gif 图片老三样系统总结
  15. Luat 功能开发教程(十六) LittleVGL
  16. linux shell脚本攻略 第三章 以文件之名 find,chmod,touch,head,tail,tree,wc
  17. MATLAB找勾股数,一种寻找勾股数的方法
  18. html svg波浪,CSS3+SVG 实现波浪滚动效果
  19. 【mcuclub】矩阵键盘
  20. 无符号数与有符号数比较

热门文章

  1. 一文搞定Mysql日期时间函数
  2. 开源工具 @sap/ux-ui5-tooling 介绍
  3. SAP Spartacus 如何根据 page layout 获得对应支持的 slots
  4. 什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发
  5. Linux 主要的发行系统版本介绍
  6. SAP Spartacus b2b表格的cell配置解析逻辑
  7. 将SAP Cloud for Customer Customer视图的Account ID配置出来
  8. SAP CRM WebClient UI的excel导出功能是否能启用,取决于这个逻辑
  9. Fiori Elements的metadata和ui annotation
  10. Cannot launch SimulationPipeline in local Eclipse