【问题标题】:Specifying pipe delimiter within PowerShell?在 PowerShell 中指定管道分隔符?
【发布时间】:2019-06-12 06:18:39
【问题描述】:

这可能比bq 更像是 PowerShell 的问题,但想知道是否有人以前遇到过这个问题。

尝试使用 bq 将表格作为 CSV 提取到 GCP 存储桶,但我需要用管道分隔文件。

除了,我试图从 PowerShell 脚本中调用,而 PS 往往过于热衷于将管道解释为管道指示符。

bq extract --destination_format CSV --compression GZIP --field_delimiter "^|" --print_header "false" ([PROJECT_ID]:[DATASET].[TABLE]) (gs://[BUCKET]/[FILENAME])

我试过^\| 来尝试逃离管道,但总是出错。由于--print_header 是命令中的下一个,因此错误显示为

'--print_header' 不被识别为内部或外部命令

但这是一条红鲱鱼,因为它捕获了任何紧随其后的属性。

【问题讨论】:

  • 你试过用反勾号来转义管道符吗?
  • 您是否尝试过使用 & 符号启动命令?喜欢&bq extract etc
  • 不需要转义(即--field_delimiter "|" 应该可以正常工作),除非bq 实际上是一个批处理脚本(bq.cmdbq.bat)。在这种情况下,您可能需要像这样运行命令:& cmd /c 'bq extract ... --field_delimiter "|" ...'

标签: powershell google-bigquery gsutil


【解决方案1】:

以下语句应该有效: & cmd /c "bq 提取 --destination_format CSV --compression GZIP --field_delimiter "^|" --print_header "false" ([PROJECT_ID]:[DATASET].[TABLE]) (gs://[BUCKET]/ [文件名])"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2015-04-21
    • 2012-02-19
    相关资源
    最近更新 更多