此命令以正确的CSV格式(文件名,dateModified,大小)提供了我需要的几乎所有信息
但是我也想在每行输出中将文件目录作为一个单独的项目包括在内。 有没有办法使用ls或另一个rhel available命令来做到这一点?
files = ["BSSE_QGF_1987_HJUS_1_MOHUA_2_T_bR_r1_v1_0_S1_R1_001_MM_1.faq.gz",
"BSSE_QGF_1967_HJUS_1_MOHUA_2_T_bR_r1_v1_0_S1_R2_001_MM_1.faq.gz",
"BSSE_QGF_18565_H33HLAFXY_1_MSJLF_T_bulk_RNA_S1_R1_001_MM_1.faq.gz",
"BSSE_QGF_18565_H33HLAFXY_1_MSJLF_T_bulk_RNA_S1_R2_001_MM_1.faq.gz"]
my_strings = ["MOHUA", "MSJLF"]
res = {s: [] for s in my_strings}
for k in my_strings:
for file in files:
if k in file:
res[k].append(file)
print(res)
答案 0 :(得分:1)
我找到了答案,但我希望有一个更简单的解决方案!我很幸运,此目录和子目录中的所有文件名都以相同的字符开头。去吧:
find . -type f -exec ls --fu {} \; | awk '{ print $9","$6","$5}' | sed "s/ArchiveFile/,ArchiveFile/"
本质上,我使用“查找”来定位文件,使用ls获得信息,然后使用awk,print和sed的组合来产生输出。 sed在字母“ ArchiveFile”之前插入所需的逗号
示例输出:
./ISIS_2011FALL/CAT_01College/,ArchiveFile_MUR115.2011FALL.51917.zip,2016-12-11,29484