bash – 如何根据多个嵌入数字对文件路径进行排序?
发布时间:2020-12-16 01:50:16 所属栏目:安全 来源:网络整理
导读:我运行了一个程序,用不同的参数生成结果,R,C和RP,反映在输出文件的目录名中,全部命名为results.txt. 例如,在目录名params_R_7_C_16_RP_0中,7是参数R的值,16是参数C的值,0是参数RP的值. 我想获取当前目录树中的所有results.txt文件,按其托管目录中的R,C和RP的
我运行了一个程序,用不同的参数生成结果,R,C和RP,反映在输出文件的目录名中,全部命名为results.txt.
例如,在目录名params_R_7_C_16_RP_0中,7是参数R的值,16是参数C的值,0是参数RP的值. 我想获取当前目录树中的所有results.txt文件,按其托管目录中的R,C和RP的嵌入值进行排序. 我首先使用以下命令来获取我要解析的results.txt文件: find ./ -name "results.txt" 输出是: ./params_R_11_C_9_RP_0/results.txt ./params_R_7_C_9_RP_0/results.txt ./params_R_7_C_4_RP_0/results.txt ./params_R_11_C_16_RP_0/results.txt ./params_R_9_C_4_RP_0/results.txt ./params_R_5_C_9_RP_0/results.txt ./params_R_9_C_25_RP_0/results.txt ./params_R_7_C_16_RP_0/results.txt ./params_R_5_C_25_RP_0/results.txt ./params_R_5_C_16_RP_0/results.txt ./params_R_11_C_4_RP_0/results.txt ./params_R_9_C_16_RP_0/results.txt ./params_R_7_C_25_RP_0/results.txt ./params_R_11_C_25_RP_0/results.txt ./params_R_5_C_4_RP_0/results.txt ./params_R_9_C_9_RP_0/results.txt 我尝试了以下排序命令: find ./ -name "results.txt" | sort 这导致词法排序: ./params_R_11_C_16_RP_0/results.txt ./params_R_11_C_25_RP_0/results.txt ./params_R_11_C_4_RP_0/results.txt ./params_R_11_C_9_RP_0/results.txt ./params_R_5_C_16_RP_0/results.txt ./params_R_5_C_25_RP_0/results.txt ./params_R_5_C_4_RP_0/results.txt ./params_R_5_C_9_RP_0/results.txt ./params_R_7_C_16_RP_0/results.txt ./params_R_7_C_25_RP_0/results.txt ./params_R_7_C_4_RP_0/results.txt ./params_R_7_C_9_RP_0/results.txt ./params_R_9_C_16_RP_0/results.txt ./params_R_9_C_25_RP_0/results.txt ./params_R_9_C_4_RP_0/results.txt ./params_R_9_C_9_RP_0/results.txt 但我真正想要的是选择性数字排序:首先是R值,然后是C,然后是RP: ./params_R_5_C_4_RP_0/results.txt ./params_R_5_C_9_RP_0/results.txt ./params_R_5_C_16_RP_0/results.txt ./params_R_5_C_25_RP_0/results.txt ./params_R_7_C_4_RP_0/results.txt ./params_R_7_C_9_RP_0/results.txt ./params_R_7_C_16_RP_0/results.txt ./params_R_7_C_25_RP_0/results.txt ./params_R_9_C_4_RP_0/results.txt ./params_R_9_C_9_RP_0/results.txt ./params_R_9_C_16_RP_0/results.txt ./params_R_9_C_25_RP_0/results.txt ... 我在生成路径列表时考虑填充嵌入的数字(例如,params_R_005_C_004_RP_0),但这需要额外的处理步骤,我想避免. 可以直接实现所需的分类吗? 解决方法
您需要-V标志进行排序
find ./ -name "results.txt" | sort -V (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |