Bash脚本从“下载”文件夹中复制文件

山姆

我创建了一个脚本,该脚本将检查文件是否在“下载”文件夹中。然后它将文件复制到所需的位置,然后将其重命名为其他名称。

我这样做是:

if [ -f /home/$username/Downloads/Framework\ Code\ Note\ $1.txt ]; then 
cp /home/$username/Downloads/Framework\ Code\ Note\ $1.txt /home/$username/Documents/TASKS/Framework/$3/$2/
mv Framework\ Code\ Note\ $1.odt Framework\ Code\ Note\ $2.odt
else
    echo "The file does not exist yet Download the latest notes from your email"
fi

问题是我通常使用相同文件名的不同版本,并且需要从电子邮件中下载最新文件。因此名称分别为Framework Code Note 10.txt,Framework Code Note 10(1).txt Framework Code Note 10(2).txt等...

我如何修改它以仅从“下载”文件夹中提取最新的Notes(如果可能)?

阿瑟雷

要获取文件的最新版本(即Framework Code Note 10(X).txtX最大),可以使用以下命令:

IFS=$'\n' MYARRAY=($( printf "%s\n" "/path/to/downloads/Framework Code Note $1"*.txt | sort -nr -t '(' -k 2 ))
cp "${MYARRAY[0]}" /my/destination/folder

分解时:

  • printf "%s\n" "/path/to/downloads/Framework Code Note $1"*.txt在下载目录中找到所有以“框架代码注释Y”开头的文件,其中Y是的值$1这样一来,Framework Code Note 10(X).txtFramework Code Note 10.txt匹配。

  • sort -nr -t '(' -k 2-n考虑到第二列(k 2),以数字顺序(对生成的文件进行排序每列的分隔符为'('(-t '('),然后反转结果,以便第一个结果具有最高的数字(-r

  • 命令的输出存储在中$MYARRAY然后,在读取数组的第一个元素时提取最高版本号

  • IFS=$'\n':\n仅针对此行将“内部字段分隔符”设置为。bash使用此变量来了解如何分隔参数,其默认值为\n\t。这意味着当我们将分配给时$MYARRAY,如果名称包含空格,则将其视为分隔符(即,如果只有Framework Code Note 10.txtFramework将存储到MYARRAY[0]CodeMYARRAY[1]等)。由于归因是内联完成的,$IFS因此执行后会恢复为默认值

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从bash脚本中的文件夹中执行随机文件

来自分类Dev

Bash脚本从文件夹中删除最旧的文件

来自分类Dev

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

来自分类Dev

带有ncftp的Bash脚本,用于下载新的远程文件并保存在新文件夹中

来自分类Dev

一个bash脚本,用于将文件夹的所有文件复制到Desktop中的唯一文件夹

来自分类Dev

将带有通配符(*)的文件复制到bash脚本中的文件夹-为什么不起作用?

来自分类Dev

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

来自分类Dev

复制目标文件夹中的文件

来自分类Dev

同时在文件夹中同时运行Bash脚本

来自分类Dev

bash脚本中的Zip文件夹内容

来自分类Dev

bash脚本中的mkdir多个子文件夹

来自分类Dev

Bash脚本选择文件夹

来自分类Dev

在bash脚本中复制文件

来自分类Dev

如何使用Powershell脚本执行文件夹中的最新文件(刚刚下载)

来自分类Dev

处理bash文件夹中的文件

来自分类Dev

在Ubuntu 14.04中复制文件夹

来自分类Dev

复制Xcode中的文件夹内容

来自分类Dev

Bash脚本按第一个字符复制文件夹

来自分类Dev

Bash脚本删除早于N天的文件,但排除某些文件夹中的文件

来自分类Dev

以迭代方式复制文件夹内的文件 - Bash

来自分类Dev

从其他文件夹中的bash脚本运行bash脚本

来自分类Dev

复制文件夹中与单独文件夹中的文件同名的所有文件

来自分类Dev

在Linux bash中复制具有完整路径的文件和文件夹

来自分类Dev

获取公共Dropbox文件夹中的文件和文件夹列表并下载文件

来自分类Dev

奇怪的文件夹中脚本的权限

来自分类Dev

Bash脚本将文件从一个文件夹复制到另一个文件夹

来自分类Dev

Bash脚本从文件夹中的所有文件名中删除字符

来自分类Dev

Bash脚本从文件夹中的所有文件名中删除字符

来自分类Dev

通过脚本自动将 Google Sheet 下载到特定文件夹中

Related 相关文章

  1. 1

    从bash脚本中的文件夹中执行随机文件

  2. 2

    Bash脚本从文件夹中删除最旧的文件

  3. 3

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

  4. 4

    带有ncftp的Bash脚本,用于下载新的远程文件并保存在新文件夹中

  5. 5

    一个bash脚本,用于将文件夹的所有文件复制到Desktop中的唯一文件夹

  6. 6

    将带有通配符(*)的文件复制到bash脚本中的文件夹-为什么不起作用?

  7. 7

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

  8. 8

    复制目标文件夹中的文件

  9. 9

    同时在文件夹中同时运行Bash脚本

  10. 10

    bash脚本中的Zip文件夹内容

  11. 11

    bash脚本中的mkdir多个子文件夹

  12. 12

    Bash脚本选择文件夹

  13. 13

    在bash脚本中复制文件

  14. 14

    如何使用Powershell脚本执行文件夹中的最新文件(刚刚下载)

  15. 15

    处理bash文件夹中的文件

  16. 16

    在Ubuntu 14.04中复制文件夹

  17. 17

    复制Xcode中的文件夹内容

  18. 18

    Bash脚本按第一个字符复制文件夹

  19. 19

    Bash脚本删除早于N天的文件,但排除某些文件夹中的文件

  20. 20

    以迭代方式复制文件夹内的文件 - Bash

  21. 21

    从其他文件夹中的bash脚本运行bash脚本

  22. 22

    复制文件夹中与单独文件夹中的文件同名的所有文件

  23. 23

    在Linux bash中复制具有完整路径的文件和文件夹

  24. 24

    获取公共Dropbox文件夹中的文件和文件夹列表并下载文件

  25. 25

    奇怪的文件夹中脚本的权限

  26. 26

    Bash脚本将文件从一个文件夹复制到另一个文件夹

  27. 27

    Bash脚本从文件夹中的所有文件名中删除字符

  28. 28

    Bash脚本从文件夹中的所有文件名中删除字符

  29. 29

    通过脚本自动将 Google Sheet 下载到特定文件夹中

热门标签

归档