Соответствие текстовых файлов из списка системных номеров
У меня есть ~ 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