使用 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进行的替换