如何匹配不同目录中的文件名?(bash或python)

时间:2014-10-08 14:17:34

标签: python linux bash

我在两个目录中有一组文件

〜/ Desktop / dir1和〜/ Desktop / dir2

我需要将dir1中的文件与dir2中的文件匹配,反之亦然

/ dir1中的

文件名是:1.out,2.out ... 21.out

/ dir2中的

文件名是:chr-1.out,chr-2.out ... chr-21.out

我在python中编写了一个绘图脚本,它接受文件名的命令行参数,并根据文件内容构建一些绘图。那么问题是如何匹配文件并将其提供给脚本?我试图使用bash,但我无法弄清楚如何做到这一点。也许这可能来自python?

我本可以手工完成,但我宁愿学习如何自动完成。

2 个答案:

答案 0 :(得分:4)

在bash中,使用参数扩展:

#!/bin/bash
for f in dir1/*.out
    echo "$f" "dir2/chr-${f#dir1/}"
done

答案 1 :(得分:1)

或者在Python中(从桌面工作):

import os

for file1 in os.listdir('dir1'):
    for file2 in os.listdir('dir2'):
        if file1 in file2:
            print(file1)

这可能是一种更有效的方法,但这是一种快速而肮脏的方法,应该相对灵活。