是否有更好的方法来查找目录树中的文件列表

时间:2013-12-16 15:55:36

标签: bash replace

我使用findfoundlist.lst创建了一个文件列表。

find命令只是find . -type f -name "<search_pattern>" > foundlist.lst

我现在想使用此列表在其他目录中查找这些文件的副本。

我的要求中的'扭曲'是我想只搜索文件名的“基础”。我不想在搜索中包含扩展名。

示例:

./sort.cc是该列表的成员。我想查找模式sort.*

的所有文件

这是我写的。有用。在我看来,有一种更有效的方法来做到这一点。

./findfiles.sh foundfiles.lst /usr/bin/temp

#!/bin/bash
# findfiles.sh
if [ $# -ne 2 ]; then
    echo "Need two arguments"
    echo "usage: findfiles <filelist> <dir_to_search>"
else
    filename=$1
    echo "$filename"
    while read -r line; do
        name=$line
        # change './file.ext' to 'file.*'
        search_base=$( echo ${name} | sed "s%\.\/%%" | sed "s/\..*/\.\*/" )
        find $2 -type f -name $search_base
    done < $filename
fi

1 个答案:

答案 0 :(得分:1)

对于剥离文件,我将使用以下(而不是awk)

search_base=`basename ${name} | cut -d'.' -f1`