匹配系统编号列表中的文本文件

时间:2013-07-02 10:50:25

标签: linux bash shell

我有~60K的书目记录,可以通过系统编号识别。这些记录还包含全文(由系统编号命名的单个文本文件)。

我有5K串的系统编号列表,我需要找到一种方法来复制每个5K列表中的文本文件。 所有文本文件都存储在一个目录(/fulltext)中,并按以下行命名: 014776324.txt.

5k列表是存储在单独目录中的纯文本(例如/5k_list_15k_list_2,...),其中每个系统编号与.txt文件匹配。

例如:bibliographic record 014776324014776324.txt匹配。

我很难找到一种方法将相应的文本文件复制到5k_list_ *文件夹中。

有什么想法吗?

非常感谢,

1 个答案:

答案 0 :(得分:1)

我们假设我们以这种方式调用以下脚本:

./the-script.sh fulltext 5k_list_1 5k_list_2 [...]

或者更简洁:

./the-script.sh fulltext 5k_list_*

然后尝试使用这个(完全未经测试的)脚本:

#!/usr/bin/env bash
set -eu # enable error checking

src_dir=$1 # first argument is where to copy files from
shift 1

for list_dir; do # implicitly consumes remaining args
    while read bibliographic record sys_num rest; do
        cp "$src_dir/$sys_num.txt" "$list_dir/"
    done < "$list_dir/list.txt"
done