使用 GSUTIL 替换字符串

Posted

技术标签:

【中文标题】使用 GSUTIL 替换字符串【英文标题】:String Replace With 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 产生了输出... '$' 未被识别为内部或外部命令,可运行的程序或批处理文件。 【参考方案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> 

【讨论】:

以上是关于使用 GSUTIL 替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

java 替换文本中的所有指定的字符串,比如#*替换为sq, #**替换为we, 我使用了replaceAll进行的替换

使用pycuda替换字符串,使用cuda替换字符串

VB编程,实现字符串替换功能

使用gsub(),如何在替换字符串中引用被替换字符串?

java中怎么进行字符串替换?

在不使用任何嵌套替换函数的情况下替换字符串中的多个字符