首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dropbox Uploader改造

Dropbox Uploader改造
EN

Stack Overflow用户
提问于 2013-11-07 16:32:10
回答 1查看 143关注 0票数 0

您是否熟悉Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader)或UNIX sed命令。

我想让这个脚本工作,这样它就可以根据修改后的日期从dropbox返回一个排序列表。

命令./droptobox list Test输出:

代码语言:javascript
复制
Listing "/Test"... DONE
[F] config.bmp
[F] igs.bin

如果要对脚本进行一些修改(回显$DIR_CONTENT),我可以从输出中看出我确实需要一些信息。

代码语言:javascript
复制
{"revision": 37, "rev": "2514cf1330", "thumb_exists": true, "bytes": 824, "modified": "Thu, 07 Nov 2013 16:14:59 +0000", "client_mtime": "Thu, 07 Nov 2013 16:14:59 +0000", "path": "/Test/config.bmp", "is_dir": false, "icon": "page_white_picture", "root": "dropbox", "mime_type": "image/x-ms-bmp", "size": "824 bytes"}

{"revision": 38, "rev": "2614cf1330", "thumb_exists": false, "bytes": 86, "modified": "Thu, 07 Nov 2013 16:15:18 +0000", "client_mtime": "Thu, 07 Nov 2013 16:15:18 +0000", "path": "/Test/igs.bin", "is_dir": false, "icon": "page_white", "root": "dropbox", "mime_type": "application/octet-stream", "size": "86 bytes"}], "size": "0 bytes"}

我想这就是造成这件事的原因:

代码语言:javascript
复制
echo "$DIR_CONTENT" | sed -n 's/.*"path": *"\([^"]*\)",.*"is_dir": *\([^"]*\),.*/\1:\2/p' > $RESPONSE_FILE

问题是我不太熟悉sed,如果我尝试做一些修改,我就不会得到任何输出。

修改后的线条(不知道我是否在朝正确的方向移动):

代码语言:javascript
复制
echo "$DIR_CONTENT" | sed -n 's/.*"path": *"\([^"]*\)",.*"is_dir": *\([^"]*\),.*"modified": *\([^"]*\),.*/\1:\2\3/p' > $RESPONSE_FILE

但理想情况下,是否有可能让它显示修改后的信息并根据其对结果进行排序?

也是db_list函数的其他部分:

代码语言:javascript
复制
        #For each line...
        while read -r line; do

            local FILE=${line%:*}
            FILE=${FILE##*/}
            local TYPE=${line#*:}

            if [[ $TYPE == "false" ]]; then
                echo -ne " [F] $FILE\n"
            else
                echo -ne " [D] $FILE\n"
            fi
        done < $RESPONSE_FILE
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 21:22:15

我看到两件事:

  1. "is_dir“值是布尔值,没有引号,因此请更改 "is_dir":*(^"*) 至 "is_dir":*(^,*)
  2. “修改”发生在"path“之前,因此您需要编写(也考虑到引号): 回波"$DIR_CONTENT“_ sed -n‘s/.*”修改“:*"(^"*)",.*”路径“:*"(^"*)",.*"is_dir":*(^,*),.*/\2:\3 \1/p’> $RESPONSE_FILE

此外,bash有一个方便的“这里-字符串”功能,所以您不需要“回显”。

代码语言:javascript
复制
sed -n '...' <<< "$DIR_CONTENT" > "$RESPONSE_FILE"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19841378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档