【问题标题】:String Replace With GSUTIL使用 GSUTIL 替换字符串
【发布时间】:2021-04-14 13:44:30
【问题描述】:

我正在尝试使用 GSUTIL 和 sed 在 GCS 中的 .csv 文件中删除标题(第一)行末尾的管道。下面的命令产生输出sed: can't read ... No such file or directory

sed 's/58_rxsig"|"/58_rxsig1/' gs://../file.csv

58_rxsig 是标题行中的最后一个字段名称,所以我的想法是找到文字字符串 '58_rxsig|'只需用文字字符串 '58_rxsig' 替换,但我显然无法正确获取语法。

关于如何实现这一点的任何想法?

示例输入:

12_word|

期望的输出:

12_word

【问题讨论】:

  • 请在您的问题中添加示例输入(无描述、无图像、无链接)以及该示例输入所需的输出(无评论)。
  • 添加了示例输入和所需输出
  • sed 's/|$//' file?
  • "C:\Program Files (x86)\GnuWin32\bin\sed.exe" sed 's/|$//' FILE 产生了输出... '$' 未被识别为内部或外部命令,可运行的程序或批处理文件。

标签: google-cloud-platform sed gsutil


【解决方案1】:

sed 命令不知道如何从 GCS 读取文件。您需要将文件内容从 GCS 下载到本地文件,然后将其作为最后一个参数提供给 sed,例如如果您的存储桶中有一个名为“a/b/c.txt”的对象:

gsutil cp gs://bucket/a/b/c.txt my/local/directory/
sed <your flags and arguments here> my/local/directory/c.txt

【讨论】:

    【解决方案2】:

    另一种方法是使用gsutil cat 并将流重定向到带有管道的sed 命令。

    gsutil cat gs://<bucket>/<blob> | sed <flags & arguments> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2021-03-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      相关资源
      最近更新 更多