比较Bash中的文件夹内容 - 寻找比较文件夹名称中的特定数字

时间:2018-02-06 18:11:00

标签: bash shell terminal

我正在尝试将一个文件夹的内容与另一个文件夹的内容进行比较,我知道我可以使用

diff -rq folder1 folder2

但是:在文件夹1中,内容是名为word_12345.1.2的所有子文件夹,而文件夹2包含名为12345.1.2.physio的文件。我想要查看folder1中的哪些文件夹,我在第二个文件夹中有文件。如果我在folder1中有文件夹的文件,则folder1中的文件夹和folder2中的文件中的数字将匹配。

当我只使用diff -rq folder1 folder2时,输出表明没有文件匹配,因为确切的名称不匹配。我正在努力把这些数据放在哪里让bash排队这些数字ID。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下脚本:

#!/bin/bash

echo "Folders with a matching file:"
for folder in folder1/*
do
    if [ -f "folder2/${folder#folder1/word_}.physio" ]
    then
        echo "${folder#folder1/}"
    fi
done

,当在两个文件夹的父目录中执行时,会在folder1中列出文件夹中的匹配文件。

要执行脚本,请将代码保存为文本文件,例如matches_with_file.sh,然后执行chmod u+x matches_with_file.sh,并使用./matches_with_file.sh进行调用。