zoukankan      html  css  js  c++  java
  • linux shell脚本遍历文件夹下png文件

    手动敲命令太累

    #!/bin/sh

    #str="/home/etouch/Desktop/testshell/picture" "/home/etouch/Desktop/testshell/picture/number"
    for file in `find "/home/etouch/Desktop/testshell/picture/number/big" -name *.png`; do
    fileName=${file}
    var="1"
    var2=".png"
    fileName1=${fileName%%.*}${var}${var2}
    echo ${fileName}
    echo ${fileName1}
    /home/etouch/Desktop/testpng/testpng9 ${fileName} ${fileName1}
    done

    注释:

    介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。
    假设定义了一个变量为:
    代码如下:
    file=/dir1/dir2/dir3/my.file.txt
    可以用${ }分别替换得到不同的值:
    ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
    ${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
    ${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
    ${file##*.}:删掉最后一个 . 及其左边的字符串:txt
    ${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
    ${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
    ${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
    ${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
    记忆的方法为:
    # 是 去掉左边(键盘上#在 $ 的左边)
    %是去掉右边(键盘上% 在$ 的右边)
    单一符号是最小匹配;两个符号是最大匹配
    ${file:0:5}:提取最左边的 5 个字节:/dir1
    ${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2
    也可以对变量值里的字符串作替换:
    ${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
    ${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt

    其中一些特殊shell命令,参考:https://blog.csdn.net/jiezi2016/article/details/79649382

  • 相关阅读:
    Jocke的IOT之路--raspberrypi更换国内镜像
    利用PostMan 模拟上传/下载文件
    Java中的Lambda表达式
    设计模式之Jdk动态代理
    设计模式之代理模式
    Java内存模型及Java关键字 volatile的作用和使用说明
    JVM GC-----4、finalize()方法
    JVM GC-----3、垃圾对象的标记思路(二)
    JVM GC-----2、垃圾对象的标记思路(一)
    JVM GC-----1、垃圾回收算法
  • 原文地址:https://www.cnblogs.com/hanrp/p/11419496.html
Copyright © 2011-2022 走看看