gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件
Posted
技术标签:
【中文标题】gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件【英文标题】:gsutil - Excluding files while synchronize contents of two buckets using regex on windows 【发布时间】:2016-09-21 19:44:13 【问题描述】:我正在使用 python 的 gsutil 从私有 Google Cloud Bucket 获取数据。
为此,我使用 rsync 来同步两个文件夹。
语法如下: gsutil -m rsync -x '<i>pattern</i>' src_url dst_url
选项 -m 用于多线程,选项 -x 用于排除文件。
我要排除的模式是以 app_version
结尾的 csv 文件。
这就是我想出的:
gsutil -m rsync -x '.*app_version\.csv$' gs://pubsite_prod_rev_04681594767840986453/stats/installs/ test/
但是这种正则表达式模式不起作用。 它还同步 csv 文件。
任何人都可以帮助使这个正则表达式工作吗?
【问题讨论】:
是哪个,app_version.csv 还是 .csv?请确定你想要什么! 能否提供运行 gsutil version -l 的输出?我想知道这是否与您的操作系统或 Python 版本有关,因为当我尝试此命令时,gsutil 仅正确复制了名称不以 .csv 结尾的对象: gsutil rsync -x '.*\.csv$' gs://my-bucket/t 目录 gsutil version -lgsutil version: 4.19 python version: 2.7.0 OS: Windows 8
的运行输出
【参考方案1】:
根据您在 Windows 上运行此命令的评论,我在 Windows 上尝试并发现了问题:正则表达式周围的单引号在 Windows 上不起作用,您应该使用双引号。以下命令正确地排除了 .csv 文件被复制:
\Python27\python.exe gsutil rsync -x ".*\.csv$" gs://my-bucket .
【讨论】:
以上是关于gsutil - 在 Windows 上使用正则表达式同步两个存储桶的内容时排除文件的主要内容,如果未能解决你的问题,请参考以下文章
通过正则表达式或通配符一次操作 gsutil 中的多个存储桶
Google BigQuery:如何使用 gsutil 删除或覆盖表?