shell字符截断

    如果是文件路径的进行字符截断可以用basename和dirname这两个工具
    basename可以从一个文件路径中截一个文件名

    $ basename /root/lnmp/lnmp_install.sh
    lnmp_install.sh

    dirname可以从一个文件路径中截到一个目录路径

    $ dirname /root/lnmp/lnmp_install.sh
    /root/lnmp

    不使用外部工具进行字符截断
    bash有自带的功能来对变量进行字符截断,一般使用"#", "##", "%%", "%", "*" 组合来实现。

    $ teststring=www.linuxeye.com
    $ echo ${teststring#*.}
    linuxeye.com
    $ echo ${teststring##*.}
    com
    $ echo ${teststring%.*}
    www.linuxeye
    $ echo ${teststring%%.*}
    www

    "#"表示从字符开始部分除去,一旦匹配则立即除去
    "##"表示从字符开始部分除去,会搜整个字符串最长的和的匹配来除去
    "%"表示从字符结束的部分除去,一旦匹配成公则立即除去
    "%%"表示从字符结束的部分开始除去,会搜寻整个字符穿中最长的匹配来除去
    "*"统配符

    不利用工具取文件名和目录

    $ echo ${dir##*/}
    lnmp_install.sh
    $ echo ${dir%/*}
    /root/lnmp
    $ echo ${dir##*.}
    sh

    在路径中取文件名: ${path##*/} (与basename相同功能)
    在路径中取目录路径: ${path%/*} (与dirname相同功能)
    取文件的扩展名: ${path##*.}

    Sat Jul 20 15:27:35 CST 2013

    • 本文由 发表于 2013-07-20
    • 转载请务必保留本文链接:https://linuxeye.com/341.html
    shell字符串处理 脚本

    shell字符串处理

    字符串操作(长度,读取,替换) 表达式 含义 ${#string} $string的长度 ${string:position} 在$string中, 从位置$position开始提取子串 ${stri...
    Linux shell用法和技巧 脚本

    Linux shell用法和技巧

    检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 让进程转入后台: Ctrl + z 将进程转到前台: fg 产...
    匿名

    发表评论

    匿名网友