从命令行自动编辑Google电子表格

4
我正在尝试用PHP和Bash编写一组脚本,向Bugsense请求应用程序中的错误信息,并完成所需的所有工作,然后上传一对文件到Google文档,以便公司内的每个人都可以看到最新的所有数据。
我之所以这样做,是因为你知道,Bugsense只提供我过去30天的信息,所以我无法在那里存储我的应用程序崩溃历史记录。
我现在唯一遇到的问题是如何在不删除并重新上传的情况下编辑Google电子表格。我的意思是,现在我正在做的是:
google docs get $GOOGLE_DOC $GOOGLE_DOC_TSV

现在我已经拥有了需要编辑的文件,我会从我的驱动器中删除它,因为如果我再次上传它,它不会覆盖原来的文件,我会得到两个同名的文件。
google docs delete $GOOGLE_DOC --yes

之后,我只需对文件进行所需的操作,然后再次上传即可:

google docs upload $GOOGLE_DOC_TSV

这样做的问题是每次运行脚本时都会有一个新文件,因此我无法分享该文档,因为我每次都会删除它并上传一个新文件。
Googlecl 允许的另一件事是编辑文件。
google docs edit $GOOGLE_DOC --format tsv --editor vim

但是,使用此方法并不自动化,因为您需要处理vim。我已经在各处搜索相关内容,但没有任何解决我的问题的信息。

1个回答

3

最终我通过查看googlecl的Python代码找到了如何做到这一点。你需要构建一个脚本,执行以下操作:

#!/bin/bash -l
#$ -S /bin/bash
#S -N $1
export GOOGLE_DOC=$1
#!Then do whahever you need to do with the google file

这个脚本只是获取第一个参数的值(这将是您想要通过任何方式编辑的谷歌文档的路径)。然后,您所需要的就是像这样调用googlecl

google docs edit --title GOOGLE_DOC_TITLE --format FORMAT --editor SCRIPT_WE_JUST_BUILD
GoogleCl正在您的系统中创建一个临时文件,并将该临时文件的路径传递给editor(我们的脚本)。所以我们得到的是临时文件的路径。
每当您完成操作后,googlecl都会查看该文件是否有任何更改,如果有,则会上传它。

对于未来的访问者:googlecl已经失效了,并且“可能会一直保持这种状态”:https://code.google.com/archive/p/googlecl/ - Daniel Griscom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接