python递归列文件_python-Bash:从最大列递归地向文件写入一行
回到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:从最大列递归地向文件写入一行相关推荐
- python中的with open读取表格文件_python 使用 with open() as 读写文件
读文件: 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f = open('E:\python\python\test.tx ...
- python增加一列数据_python数据怎么添加列?
python在DataFrame数据中添加列的方法: 1.使用concat方法在数据中添加列 concat方法相当于数据库中的全连接(union all),它不仅可以指定连接的方式(outer joi ...
- python 逐行读取文件_Python fileinput模块:逐行读取多个文件
前面章节中,我们学会了使用 open() 和 read()(或者 readline().readlines() )组合,来读取单个文件中的数据.但在某些场景中,可能需要读取多个文件的数据,这种情况下, ...
- 利用python处理pdf文本_Python用于NLP :处理文本和PDF文件
原标题:Python用于NLP :处理文本和PDF文件 提示:代码图片可以点击全屏查看,双指操作还可以放大缩小. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从 ...
- python写入pdf文件_Python用于NLP :处理文本和PDF文件
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for ...
- python指定位置写入文件_Python中如何在指定目录下进行文件的读写操作
一.python的简单读写操作 在python中,可以使用open函数,打开一个已经存在的文件,或者创建一个新文件.常用操作示例如下: # 在当前目录下创建并打开一个文件夹,若文件已有则打开文件tes ...
- python打开电脑文件_python办公自动化:自动打开word文档-docx文件怎样打开
上节python办公自动化:python自动化word快速入门,对python自动化word的操作做了快速入门,从本小节开始,逐步细致的分解讲解每一个关键步骤. python自动化word 使用文档 ...
- python中open函数打开文件_Python open函数详解:打开指定文件
掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了.在进行文件读写之前,首先要打开文件. Python 提供了一个内置的 open() 函数,该函数用于打开指定文件. open() 函 ...
- python 打开路径下文件_Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法...
在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...
- python的open打开中文文件_Python笔记 —— 使用open打开和操作txt文件
打开:有两种方式 with open(r"data.txt", "r", encoding="utf-8") as f: f = open( ...
最新文章
- Python自动化开发学习6
- Content-Disposition 响应头,设置文件在浏览器打开还是下载
- Python 调试 PDB
- Keepalived实现高可用Nginx反向代理
- MVC设计之MVC设计模式(介绍)
- CentOS7.2 network.service NetworkManager.service 冲突
- JAVA快速排序算法实现
- Dubbo 2.7.7 发布,FastJson 升级了!
- NERO8.3.6.0(官方完整版+序列号)
- TCP/IP、Http的区别--(转自任智康)
- (半)自动化爬虫系统该包含的功能点及相关介绍
- WPF 做的天干地支 乾坤八卦 罗盘
- 【git】cherry-pick详解
- 前端vs图片 3 jpg、png、gif 图片老三样系统总结
- Luat 功能开发教程(十六) LittleVGL
- linux shell脚本攻略 第三章 以文件之名 find,chmod,touch,head,tail,tree,wc
- MATLAB找勾股数,一种寻找勾股数的方法
- html svg波浪,CSS3+SVG 实现波浪滚动效果
- 【mcuclub】矩阵键盘
- 无符号数与有符号数比较
热门文章
- 一文搞定Mysql日期时间函数
- 开源工具 @sap/ux-ui5-tooling 介绍
- SAP Spartacus 如何根据 page layout 获得对应支持的 slots
- 什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发
- Linux 主要的发行系统版本介绍
- SAP Spartacus b2b表格的cell配置解析逻辑
- 将SAP Cloud for Customer Customer视图的Account ID配置出来
- SAP CRM WebClient UI的excel导出功能是否能启用,取决于这个逻辑
- Fiori Elements的metadata和ui annotation
- Cannot launch SimulationPipeline in local Eclipse