Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从系统编号列表中匹配文本文件_Linux_Bash_Shell - Fatal编程技术网

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

Linux 从系统编号列表中匹配文本文件,linux,bash,shell,Linux,Bash,Shell,我有约60K的书目记录,可以通过系统编号识别。这些记录还保存全文(以系统编号命名的单个文本文件) 我有5K的系统编号列表,我需要找到一种方法,只复制每个5K列表中的文本文件。 所有文本文件都存储在一个目录(/fulltext)中,并按照以下内容命名: 014776324.txt. 5k列表是存储在单独目录中的纯文本(例如/5k\u列表1,5k\u列表2,…),其中每个系统编号与.txt文件匹配 例如:书目记录014776324与014776324.txt匹配 我正在努力寻找一种方法,只将相应的文

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

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

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

例如:
书目记录014776324
014776324.txt
匹配

我正在努力寻找一种方法,只将相应的文本文件复制到5k_列表_*文件夹中

有什么想法吗


确实非常感谢,

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

./the-script.sh fulltext 5k_list_1 5k_list_2 [...]
或者更简洁地说:

./the-script.sh fulltext 5k_list_*
然后尝试使用以下(完全未测试)脚本:

#/usr/bin/env bash
设置-eu#启用错误检查
src_dir=$1#第一个参数是从何处复制文件
班次1
列表(目录);;do#隐式使用剩余的参数
在阅读书目记录系统时;做
cp“$src_dir/$sys_num.txt”“$list_dir/”
完成<“$list_dir/list.txt”
完成

呃,对不起,你想从我们这里得到什么?一个脚本?你想只复制那些名字列在一个文本文件(一种索引)中的文件吗?你可以用AWK或者GREP来实现,但是我很难理解你想复制什么。你能进一步解释一下吗?Thanks@trojanfoe,不,我不想要现成的脚本。@退出,我将研究AWK实用程序。谢谢
#!/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