使用 ls 和 grep 压缩文件选择
using ls with grep to zip selection of files
我正在尝试通过使用 bash 让我的工作流程更有效率。
我有这些文件
20201.csv 20202.csv 20203.csv 20191.csv 20192.csv
和
ls | grep '2020*'
我正在提取以 2020 开头的文件。
我正在与如何将这个较小列表中的文件压缩的语法作斗争。
我试过:
ls | grep '2020*' | zip archive.zip
ls | zip archive.zip grep '2020*'
我试过写入变量并且我已经阅读了 zip 和 grep 的 Man / --help。
我访问了大约 20 个不同的网站和堆栈页面。
https://unix.stackexchange.com/questions/231239/how-to-redirect-output-of-a-program-to-a-zip-file
https://unix.stackexchange.com/questions/231239/how-to-redirect-output-of-a-program-to-a-zip-file
https://www.geeksforgeeks.org/zip-command-in-linux-with-examples/
还有很多。
有人可以帮我理解代码吗?
我在哪里失踪或我在哪里做出错误的假设?
非常感谢。
zip archive.zip 2020*
就是你所需要的。
当 bash 解析此行以供执行时,它会在 启动 之前扩展文件模式 zip
。
关于正则表达式的区别需要注意的重要事项:
- 正则表达式
2020*
匹配字符串中的任何位置,“202”后跟 零个或多个“0”
- 字符串“202”匹配正则表达式
2020*
- 字符串“120201”匹配正则表达式
2020*
- glob 模式
2020*
匹配,从开头开始,“2020”后跟 零个或多个任意字符
- 文件“202”不与 glob 模式匹配
2020*
- 文件“120201”不与 glob 模式匹配
2020*
我正在尝试通过使用 bash 让我的工作流程更有效率。
我有这些文件 20201.csv 20202.csv 20203.csv 20191.csv 20192.csv
和
ls | grep '2020*'
我正在提取以 2020 开头的文件。 我正在与如何将这个较小列表中的文件压缩的语法作斗争。
我试过:
ls | grep '2020*' | zip archive.zip
ls | zip archive.zip grep '2020*'
我试过写入变量并且我已经阅读了 zip 和 grep 的 Man / --help。 我访问了大约 20 个不同的网站和堆栈页面。
https://unix.stackexchange.com/questions/231239/how-to-redirect-output-of-a-program-to-a-zip-file https://unix.stackexchange.com/questions/231239/how-to-redirect-output-of-a-program-to-a-zip-file https://www.geeksforgeeks.org/zip-command-in-linux-with-examples/ 还有很多。
有人可以帮我理解代码吗? 我在哪里失踪或我在哪里做出错误的假设?
非常感谢。
zip archive.zip 2020*
就是你所需要的。
当 bash 解析此行以供执行时,它会在 启动 之前扩展文件模式 zip
。
关于正则表达式的区别需要注意的重要事项:
- 正则表达式
2020*
匹配字符串中的任何位置,“202”后跟 零个或多个“0”- 字符串“202”匹配正则表达式
2020*
- 字符串“120201”匹配正则表达式
2020*
- 字符串“202”匹配正则表达式
- glob 模式
2020*
匹配,从开头开始,“2020”后跟 零个或多个任意字符- 文件“202”不与 glob 模式匹配
2020*
- 文件“120201”不与 glob 模式匹配
2020*
- 文件“202”不与 glob 模式匹配