防止 xargs 在术语末尾附加点

防止 xargs 在术语末尾附加点

我正在尝试通过脚本使用 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

相关内容