2016-05-31 18 views
1

Googleバケットとローカルディレクトリの間でコンテンツを同期させたいと考えています。この操作を実行中に特定のファイルを無視したい。gsutil - 代替が動作しない正規表現

私は最後にcountry.csvとversion.csvで終わるファイルを無視したいと思います。

だから私は、私は、単一の正規表現をしようとしたとき、私はそれが



    gsutil -m rsync -x ".*country\.csv$" gs://[bucket_id] test/ 

 
を動作しますが、一方 regex101.com

に、この正規表現をテストしている



    gsutil -m rsync -x ".*country\.csv$|.*version\.csv$" gs://[bucket_id] test/ 

 

動作しない、次の正規表現を使用

私はWindowsマシンで作業しています。 と私は参照していますgsutil documentation

問題がどこにあるのかを特定できますか?

編集:

gsutilの上のエラー "内部または外部コマンドとして認識されない、操作可能なプログラムまたはバッチファイル"

+1

ドキュメントでは、正規表現の前後に一重引用符を使用することを推奨しています。あなたはそれを試しましたか? – SilentMonk

+0

@SilentMonk:一重引用符はウィンドウでは機能しません。上記の単一正規表現は二重引用符でのみ動作します – Pankaj

+0

二重バックスラッシュはどうなりますか? Unixでは、一重引用符で拡張することはできません。つまり、 '\\'はPythonにネイティブに渡されます。これにより、ネイティブのバックラッシュがPythonの文字列に表示されます。 – dhke

答えて

2

これは動作するはず:

gsutil -m rsync -x ".*country\.csv$^|.*version\.csv$" gs://[bucket_id] test/ 

参照してください。例えばHow to pass a quoted pipe character to cmd.exe?

+0

これは私の問題を解決しました。素晴らしいです。すごい仕事。 – Pankaj

関連する問題