例如:

  假设变量var=http://www.baidu.com/111.png

1.#号截取(删左留右)

echo ${var#*//}

# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://

2.##号截取(删左留右)

echo ${var##*.}
##*.表示从左边开始删除最后一个.及其至左边的所有字符
即删除http://www.baidu.com/111.

3.%截取(删右留左)

echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
即删除/111.png

4.%%截取(删右留左)

echo ${var%%.*}
%%/* 表示从右边开始,删除最后(最左边)一个.号及其至右边的所有字符

5.从左边第几个字符开始,及字符的个数

echo ${var::}
从左边第1个字符开始,截4个字符长度
即截取出http

6.从左边第几个字符开始,一直到字符串的最后结束

echo ${var:}
从左边第7个字符开始,一直截到最后
即删除http:
//

7.从右边第几个字符开始,及字符的个数

echo ${var:-:}
从右边第7个字符开始,向后截3个字符
即截出111

8.从右边第几个字符开始,一直到字符串的最后结束

echo ${var:-}
从右边第3个字符开始,一直截到最后
即截出png

注意:从左边开始时,第一个字符用表示;

   从右边开始时,右边的第一个字符用0-1表示;

Shell脚本编程中截取字符串方法的更多相关文章

  1. 拾遗:Perl 在 Shell 脚本编程中的应用

    Perl 对我用途,仅是作为 Shell 脚本中的文本处理器:在较大的软件工程里,更多的是使用 C.go 等编译型语言. Perl 是一种历史比较悠久的动态编程语言,在各种类 Unix 系统中得到了应 ...

  2. 三种Shell脚本编程中避免SFTP输入密码的方法

    最近编程中用到sftp上传文件,且需要用crontab预设定时上传事件.而sftp不同于ftp,没有提供选项如 -i 可以将密码直接编码进程序.使用sftp指令,会自动请求用户输入密码. 总结一下可以 ...

  3. Linux Shell脚本编程-数组和字符串处理

    数组  1.数组的定义及声明 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名:整个数组只有一个名字 索引:编号从0开始,属于数值索引:bash的数组支持 ...

  4. Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: if [$1 == & ...

  5. [linux] shell脚本编程-xunsearch安装脚本学习

    安装脚本setup.sh #!/bin/sh # FULL fast install/upgrade script # See help message via `--help' # $Id$ # s ...

  6. inux中shell截取字符串方法总结

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  7. linux中shell截取字符串方法总结

    截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=wo ...

  8. shell中截取字符串的方法总结

    shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  9. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

随机推荐

  1. 测试环境添加spark parcel 2.1步骤

    1.先到http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/ 下载需要的文件比如我linux版本需要是6的 hadoop6需要下载这些 ...

  2. 论一个X倒下了千千万万个X站起来了

        一个人倒下了,千千万万个人站起来了.起源自革命时期的标语.后来又被应用于各种激励的场景.     这句话在当时环境是好的,但是在无数人应用在不同场景,并且这些场景都不怎么好的时候.人的普遍思维 ...

  3. 2019-10-4-C#-极限压缩-dotnet-core-控制台发布文件

    title author date CreateTime categories C# 极限压缩 dotnet core 控制台发布文件 lindexi 2019-10-04 14:59:36 +080 ...

  4. [symonfy] An error occurred when executing the "'cache:clear --no-warmup'"

    Symfony Version: 3.4.* 当运行 composer update 会出现 [RuntimeException] An error occurred when executing t ...

  5. openSUSE 安装compass,mkmf.rb can't find,checking for ffi.h...extconf.rb failed

    安装compass时,提示 Fetching: sass-.gem (%) Successfully installed sass- Fetching: ffi-.gem (%) Building n ...

  6. MVVM test

    示例代码 public class RegisterUserViewModel { public UserInfo userInfo { get; set; } public ICommand Cli ...

  7. 关于Synthesis

    1,当追求面积最小时 会以牺牲Fmax为代价,可以使用一下setting: fit_pack_for_density=on fit_report_lab_usage_stats=on 可在 .qsf ...

  8. poj3294Life Forms

    传送门 我真是一个垃圾 模板题都不会做 模板题还要别人教 细节写法还要别人教 别人一分钟AC,教我算法还教我写法,最后写出来的别人算法还比我优秀一百倍 数据结构把脑子学傻了,看到题就想怎么用数据结构, ...

  9. Windows安全证书生成方法(开发者证书)

    首先,查看本机安装的证书可在“运行”中输入:certmgr.msc 一.win8.8.1.win10系统,使用管理员powershell创建证书: (1)利用如下命令来创建证书并获取到其指纹 New- ...

  10. QC的安装和配置

    QC(Quality center)的安装配置 Wmware 虚拟机 数据库SQL server2000 Windows server 2003 须安装数据库的sp4补丁包 注意事项 数据库安装时选择 ...