如何在LS命令结果中包括包含路径(完整或相对)

时间:2019-01-30 15:53:30

标签: rhel ls

此命令以正确的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)

1 个答案:

答案 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