• 导出七牛图片


    原来图片都是在本地,往外导图片特别简单,只要执行一下cp的脚本就好了,但是现在图片都迁移到了七牛上,再往外导出图片就麻烦了
    在七牛有一个qshell工具
    里边有一个qdownload 
    qdownload 从七牛空间同步数据到本地,支持只同步某些前缀的文件,支持增量同步
     
    用的话呢qshell qdownload qdownload.conf  是这么用qdownload.conf 为配置文件
    里边有这样一个配置 ,其他配置没有给出。
    "prefix"    :   "",  填写图片的前缀
    给我的文件时都是这样的,
    cp /root/export_files/1025168/dfeafa0a-6f96-4b32-88c1-dde103b3655a/1453366970085.jpg /root/export_files/8155-003f-3115.jpg
    一共2000多张......
    我先把文件用一下命令截取  
    cat cp导出路径.txt | awk -F / '{print $4"/“$5}' > new_image.txt
    得到这个格式
    1025168/dfeafa0a-6f96-4b32-88c1-dde103b3655a,
    那么配置文件的那行应该写成这样
    "prefix"    :   "1025168/dfeafa0a-6f96-4b32-88c1-dde103b3655a",
    然后我想每次执行完qshell qdownload qdownload.conf 然后自动修改prefix的路径,然后把路径改成下一个需要执行的路径,继续执行。
     
    开始由于没有找到用”为分隔符进行分割的方法,所以就把配置文件写成了
    "prefix"    :   “/1025168/dfeafa0a-6f96-4b32-88c1-dde103b3655a/",
    以/为分隔符进行分割
    cat qdownload.conf | grep prefix | awk -F '/' '{print "/"$2"/"$3"/"}'
    得到 /1025168/dfeafa0a-6f96-4b32-88c1-dde103b3655a/
    测试命令:
    path=/1051742/0f6faaa4-808c-4320-87a3-c95f0bdc20b5/
    path1=`cat qdownload.conf | grep prefix | awk -F '/' '{print "/"$2"/"$3"/"}'`
    sed -i "s/$path1/$path/g" `grep prefix -rl qdownload.conf`
    ./qshell qdownload qdownload.conf
     
    但是经过测试,  /1051742/0f6faaa4-808c-4320-87a3-c95f0bdc20b5/ 这个格式不能再七牛上进行下载 
    1051742/0f6faaa4-808c-4320-87a3-c95f0bdc20b5才可以
    然后又找到了以”为分割符进行分割的方法
    修改后的测试命令:
    path=1051742/0f6faaa4-808c-4320-87a3-c95f0bdc20b5
    path1=`cat qdownload.conf | grep prefix | awk -F '"' '{print $4}'`
    sed -i "s/$path1/$path/g" `grep prefix -rl qdownload.conf`
    ./qshell qdownload qdownload.conf
     
    测试后,第三句没有成功
    想了想才发现sed -i "s/$path1/$path/g" `grep prefix -rl qdownload.conf`
    这句中的'/'可能和变量中'/'有冲突,所以导致失败
    又把这句修改为
    sed -i “s@$path1@$path@" `grep prefix -rl qdownload.conf才可以
    最终脚本
    #!/bin/bash
    while read path
    do
    path1=`cat qdownload.conf | grep prefix | awk -F '"' '{print $4}'`
    sed -i "s@$path1@$path@" `grep prefix -rl qdownload.conf`
    ./qshell/qshell qdownload download.conf
    done<image.txt
     
    脚本完成了,就这么两句,
    可是在这个过程中走了很多弯路,想过另一种循环,但是(思路太傻)排除了。顺便也学习和复习了一些vi处理文本命令和sed命令
    我觉得如果使用vi命令熟练的话,用vi处理文本,比用编辑软件,更方便。
    总结的命令:
    1、用newstring替换文件file.txt的oldstring
    sed -i "s/oldstring/newstring/g" `grep oldstring -rl file.txt`
    2、以"为分割符,截取每行的第四部分
    cat file.txt |  awk -F '"' '{print $4}' 
    3、vi 处理文本
    :%s/^///   行首加 /
    :%s/$///    行尾加/
    :%s/^///g   行首减/
    :%s//$//g   行尾减/
    :%s/^s*//g  行首减 空格
    :g/^$/d     删除空行
    :%s/oldstring/newstring/g  全部替换
    :%s/oldstring/newstring/  替换每行的第一个字符串
     
  • 相关阅读:
    BTree和B+Tree详解
    python小技巧01递归解释内嵌
    Python实战171201筛选数据
    学术网站
    现代科技新闻
    人工智能——深度学习介绍
    时区缩写
    centos7忘记root密码
    centos7正确关机重启
    虚拟化漫谈
  • 原文地址:https://www.cnblogs.com/cuizhipeng/p/5171337.html
Copyright © 2020-2023  润新知