Соответствие текстовых файлов из списка системных номеров

У меня есть ~ 60K библиографических записей, которые можно идентифицировать по номеру системы. Эти записи также содержат полнотекстовые (индивидуальные текстовые файлы, названные системным номером).

У меня есть списки системных номеров в группах по 5 КБ, и мне нужно найти способ скопировать только текстовые файлы из каждого списка 5 КБ. Все текстовые файлы хранятся в каталоге (/fulltext) и названы что-то вроде этого: 014776324.txt.

Списки 5k представляют собой простой текст, хранящийся в отдельных каталогах (например, /5k_list_1, 5k_list_2,...), где каждый системный номер соответствует .txt файл.

Например: bibliographic record 014776324 соответствует 014776324.txt,

Я изо всех сил пытаюсь найти способ скопировать в папки 5k_list_* только соответствующие текстовые файлы.

Любая идея?

Спасибо большое,

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
Другие вопросы по тегам