我正在尝试通过脚本使用 gdrive 命令行应用程序。的输出是以空格分隔的,我需要使用(例如下载/删除/等)gdrive
进一步处理输出的第一项(这是文件名)command2
的输出gdrive list --many options
看起来像这样
1zioW5nrKdWPz-UiaGla1KJkcMf-OUGfR test.sh bin 396.0 B 2019-07-24 03:28:26
所以我这样做
gdrive list --many options | cut -w -f1 | xargs -I {} gdrive delete {}
但这给出了一个错误
Failed to get file: googleapi: Error 404: File not found: 1zioW5nrKdWPz-UiaGla1KJkcMf-OUGfR., notFound
为什么 xargs 在末尾附加点以及如何阻止它?
作为替代方案,我还尝试通过管道输出(read A; gdrive delete $A)
而不是 via xargs
,但输出是相同的。
要诊断问题(根据@michael-homer的建议) - 在管道输出到hexdump
而不是gdrive delete
(通过在末尾附加xargs -I {} printf '<<%s>>\n' {} | hexdump -C
)时,输出看起来像
00000000 3c 3c 31 7a 69 6f 57 35 6e 72 4b 64 57 50 7a 2d |<<1zioW5nrKdWPz-|
00000010 55 69 61 47 6c 61 31 4b 4a 6b 63 4d 66 2d 4f 55 |UiaGla1KJkcMf-OU|
00000020 47 66 52 3e 3e 0a |GfR>>.|
00000026