如何编写bash脚本以根据名称将文件复制到新文件夹中?

永恒蛾

我有一个约300个文件的文件夹。它们以这种形式命名:[email protected]我大约需要40个,并且有一个用户名列表(保存在名为names.txt的文件中)。每个用户名是文件中的一行。我需要大约40个这些文件,并想将需要的文件复制到只有我需要的文件的新文件夹中。

在文件names.txt的第一行仅包含用户名的情况下(例如,eternalmothra),我要复制的PDF文件名为[email protected]

while read p; do
  ls | grep $p > file_names.txt
  done <names.txt

这似乎应该从列表中读取,并且每一行都将用户名转换为[email protected]不幸的是,似乎只有最后一个保存到了file_names.txt。

第二部分是将所有文件复制到:

while read p; do
    mv $p foldername
    done <file_names.txt

(我还没有尝试过第二部分,因为第一部分不起作用)。

顺便说一下,我正在与Cygwin一起做所有这一切。

1)第一个脚本不会复制所有内容有什么问题?2)如果我可以正常使用,第二个脚本是否可以正确复制它们?(实际上,我认为最好只复制而不是移走它们)。

编辑:我想补充一点,我想出了如何从此处读取txt文件中的行:在bash中循环浏览文件内容

瓶中的消息

来自注释的解决方案:您的问题仅仅是,echo a > b正在覆盖文件,而echo a >> b正在追加到文件,因此请替换

ls | grep $p > file_names.txt

ls | grep $p >> file_names.txt

如果任务每天运行,可能会有更有效的解决方案,但是对于300个文件的一次性文件而言,脚本是不错的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

bash shell 脚本:将文件夹内文件夹的特定内容从每个文件夹复制到桌面上的新文件夹

Unix Shell脚本-将文件从父文件夹和子文件夹单独复制到新文件夹中

将文件从多个文件夹复制到新文件夹-文件具有相同的名称

将 HDFS Hadoop 中的最后 5 个更新文件复制到 bash 中的目标文件夹

Python-将列表中的特定文件复制到新文件夹中

比较两个文件夹,并使用bash根据序列号将丢失的文件复制到新文件夹

如何将文件从列表复制到新文件夹?

如何使用批处理文件将特定子文件夹(如果存在)复制到备份文件夹中的新文件夹?

根据今天的日期创建一个文件夹,然后使用批处理文件将文件复制到新文件夹中

Ubuntu将文件夹内的文件复制到新文件夹

将子文件夹中的所有文件复制到新文件夹中

如何使用Python将子文件夹和文件复制到新文件夹

将顺序文件从多个文件夹复制到新文件夹中

如何将文件夹复制到以sysdate重命名的新文件夹?

如何将文件夹中的每个第4个文件复制到新文件夹中?

将文本文件中列出的几个文件复制到新文件夹中

Robocopy仅将更改的文件复制到新文件夹

使用webpack打包,如何将已经存在的文件复制到新文件夹?

使用R将文件夹中的所有PDF和所有子文件夹复制到新文件夹

将带有通配符的文件列表复制到新文件夹中

将使用grep生成的文件复制到新文件夹中

监视文件夹并复制到新文件夹并重命名的PS脚本

如何为 .sh 文件编写 crontab 脚本以将文件从 AWS s3 文件夹复制到我的本地 ec2 文件夹?

如何使用PowerShell仅将新文件从一个文件夹复制到另一个文件夹

批处理:将文件从txt文件复制到文件夹,并将差异文件放入新文件中

如何将具有特定名称的所有文件的内容复制到新文件中?

Windows批处理文件可将最新文件复制到新文件夹

将最近5天内已修改的文件复制到新文件夹

将特定文件复制到新文件夹,同时保留原始子目录树