Linux 的字符串截取很有用。有八种方法。

假设有变量 var="User:123//321:/home/dir"

1. # 号截取,删除左边字符,保留右边字符。

[root@zhoucentos ~]# var="User:123//321:/home/dir"
[root@zhoucentos ~]# echo ${var#*//}

:/home/dir

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 User:123

结果是 :321:/home/dir

2. ## 号截取,删除左边字符,保留右边字符。

[root@zhoucentos ~]# echo ${var##*/}
dir

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 User:123//321:/home/

结果是 dir

3. %号截取,删除右边字符,保留左边字符

[root@zhoucentos ~]# echo ${var%:*}
User://

%:* 表示从右边开始,删除第一个:号及右边的字符

结果是:User:123//321

4. %% 号截取,删除右边字符,保留左边字符

[root@zhoucentos ~]# echo ${var%%:*}
User

%%:* 表示从右边开始,删除最后(最左边)一个: 号及右边的字符
结果是:User

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

[root@zhoucentos ~]# echo ${var:0:8}
User:

其中的 0 表示左边第一个字符开始,8 表示字符的总个数。
结果是:User:123

6. 从左边第几个字符开始,一直到结束。

[root@zhoucentos ~]# echo ${var:5}
//321:/home/dir

其中的5 表示左边第6个字符开始,一直到结束。
结果是 :123//321:/home/dir

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

[root@zhoucentos ~]# echo ${var:0-9:5}
/home

其中的 0-9 表示右边算起第九个字符开始,5表示字符的个数。
结果是:/home

8. 从右边第几个字符开始,一直到结束。

[root@zhoucentos ~]# echo ${var:0-9}
/home/dir

表示从右边第九个字符开始,一直到结束。
结果是:/home/dir

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

shell中字符串截取的更多相关文章

  1. c#中字符串截取使用的方法

    AndyZhang welcome to java world c#中字符串截取使用的方法 String substring(int beginIndex) String substring(int ...

  2. 【2017-06-27】Js中获取地址栏参数、Js中字符串截取

    一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...

  3. javascript、jquery 、C#、sqlserveer、mysql、oracle中字符串截取的区别和用法

    下标从0开始 ,并且包括起始位 javascript 中字符串截取 : substring(Number start,Number end) var substr = "liuguangfa ...

  4. shell中字符串操作【转】

    转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html 我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,当然shell编程也不例 ...

  5. Shell中字符串、数值的比较

    原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较:    -eq       等于 ...

  6. Shell中字符串的切割、拼接、比较、替换

    [截取] 一.Linux shell 截取字符变量的前8位,有方法如下: expr substr “$a” 1 8 : 二.按指定的字符串截取 第一种方法: ${varible##*string} # ...

  7. JavaScript中字符串截取函数slice()、substring()、substr()

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  8. Shell脚本字符串截取方法总结

    Shell脚本8种字符串截取方法总结转自:https://www.cnblogs.com/ralphdc/p/8032335.html Linux 的字符串截取很有用.有八种方法.假设有变量 var= ...

  9. Thinkphp 3.2中字符串截取

    将此方法放到Thinkphp/Common/function.php里/* * 字符串截取函数 * 大白驴 * 2016-11-29 qq 675835721 * */function msubstr ...

随机推荐

  1. 花花的礼物 (huahua)

    花花的礼物 (huahua) 花花是个爱动脑子的孩子,在她的生日的时候,她的爸爸给她准备了个礼物.但是,她的爸爸并不想让她轻易得到礼物,他把礼物放在了一个箱子里面,只有输入正确的密码才能打开箱子,而她 ...

  2. APIO2017游记

    铁牌选手爆零滚粗记QAQ........ CCF说不让讨论APIO相关内容不过现在应该没事了吧QAQ day0:上午还在学校填清北夏令营的表,下午上火车去北京,晚上颓颓颓...... day1:上午网 ...

  3. 使用rssh创建一个安全的文件服务器

    使用rssh创建一个安全的文件服务器 目前有这样一个需求,公司需要一台linux服务器作为文件服务器,但是基于安全性考虑,我不想使用ftp或者samba,但又必须允许用户上传文件.怎么办呢? 因为是l ...

  4. 一种提高Android应用进程存活率新方法

    一.基础知识 1.Android 进程优先级 1.1 进程优先级等级一般分法:- Activte process- Visible Process- Service process- Backgrou ...

  5. 写一个system.data.entity的simpledatarepo,实现crudq这些功能,不需要引入entityframework,直接可以使用,用到objectset

    note:you can delete reference of entityframework when using this classes.it`s just a simple repohelp ...

  6. C++自带向量_vector_C++

    vector 向量,是C++自带的一种容器,其实就是一个升级版的数组 因为它使用的是动态空间,所以当我们不确定数组空间的时候可以使用它 若要使用需打开头文件 #include<vector> ...

  7. [模板]大步小步算法——BSGS算法

    大步小步算法用于解决:已知A, B, C,求X使得 A^x = B (mod C) 成立. 我们令x = im - j | m = ceil(sqrt(C)), i = [1, m], j = [0, ...

  8. pageHelper插件+传统分页处理

    为什么要使用pageHelper:https://www.cnblogs.com/ljdblog/p/6725094.html 配置文件详解:https://www.cnblogs.com/cksvs ...

  9. SpringMvc+Spring+Mybatis+Maven整合

    一.建立数据库表,使用generator自动生成相关代码: /* SQLyog Ultimate v11.24 (32 bit) MySQL - 5.1.62-community : Database ...

  10. 中控考勤机WEB主动上报接收SERVER程序

    using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace Con ...