2013-07-02 10 views
0

我有~60K的书目记录,可以通过系统号码来识别。这些记录还保存全文(由系统编号命名的个人文本文件)。从系统号码列表匹配文本文件

我有一串5K的系统号码列表,我需要找到一种方法来从每个5K列表中只复制文本文件。 所有文本文件都存储在一个目录(/fulltext),并命名为这些方针的东西: 014776324.txt.

5K的列表存储在分隔的目录纯文本(例如/5k_list_15k_list_2,...),每个系统中数字匹配到.txt文件。

例如:bibliographic record 014776324匹配到014776324.txt

我很努力地找到一种方法,只将相应的文本文件复制到5k_list_ *文件夹中。

有什么想法?

感谢的确,

+5

err,对不起,你想从我们这里得到什么?脚本? – trojanfoe

+0

是否只想复制在文本文件中列出其名称的文件,这是一种索引? – Atropo

+0

你可以用AWK和GREP来做到这一点,但是我很难理解你想要复制什么。你能进一步解释吗?谢谢 – Dropout

回答

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