• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > 总结的7个shell字符串操作方法和实例分享

总结的7个shell字符串操作方法和实例分享

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell 字符串操作,shell 变量字符串操作,shell 字符串比较,shell 字符串截取,shell 字符串拼接等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

每一种语言都有他独自的字符串操作方法,shell也一样,下面以以例子的方式,简单介绍常用方法。

1,取得字符串长度

string=abc12342341          //等号二边不要有空格
echo ${#string}             //结果11
expr length $string         //结果11
expr "$string" : ".*"       //结果11 分号二边要有空格,这里的:根match的用法差不多
</div>

2,字符串所在位置

expr index $string '123'    //结果4 字符串对应的下标是从0开始的
</div>
这个方法让我想起来了js的indexOf,各种语言对字符串的操作方法大方向都差不多,如果有语言基础的话,学习shell会很快的。

3,从字符串开头到子串的最大长度

expr match $string 'abc.*3' //结果9
</div>

个人觉得这个函数的用处不大,为什么要从开头开始呢。

4,字符串截取

echo ${string:4}      //2342341  从第4位开始截取后面所有字符串
echo ${string:3:3}    //123      从第3位开始截取后面3位
echo ${string:3:6}    //123423   从第3位开始截取后面6位
echo ${string: -4}    //2341  :右边有空格   截取后4位
echo ${string:(-4)}   //2341  同上
expr substr $string 3 3   //123  从第3位开始截取后面3位
</div>

上面的方法让我想起了,php的substr函数,后面截取的规则是一样的。

5,匹配显示内容

//例3中也有match和这里的match不同,上面显示的是匹配字符的长度,而下面的是匹配的内容
expr match $string '\([a-c]*[0-9]*\)'  //abc12342341
expr $string : '\([a-c]*[0-9]\)'       //abc1
expr $string : '.*\([0-9][0-9][0-9]\)' //341 显示括号中匹配的内容
</div>
这里括号的用法,是不是根其他的括号用法有相似之处呢,

6,截取不匹配的内容

echo ${string#a*3}     //42341  从$string左边开始,去掉最短匹配子串
echo ${string#c*3}     //abc12342341  这样什么也没有匹配到
echo ${string#*c1*3}   //42341  从$string左边开始,去掉最短匹配子串
echo ${string##a*3}    //41     从$string左边开始,去掉最长匹配子串
echo ${string%3*1}     //abc12342  从$string右边开始,去掉最短匹配子串
echo ${string%%3*1}    //abc12     从$string右边开始,去掉最长匹配子串
</div>

这里要注意,必须从字符串的第一个字符开始,或者从最后一个开始,

7,匹配并且替换

echo ${string/23/bb}   //abc1bb42341  替换一次
echo ${string//23/bb}  //abc1bb4bb41  双斜杠替换所有匹配
echo ${string/#abc/bb} //bb12342341   #以什么开头来匹配,根php中的^有点像
echo ${string/%41/bb}  //abc123423bb  %以什么结尾来匹配,根php中的$有点像
</div>

</div>

您可能想查找下面的文章:

  • 总结的7个shell字符串操作方法和实例分享
  • shell字符串操作详解
  • shell字符串操作详解

相关文章

  • Linux复制文件命令cp之使用解说
  • linux链接编译详解
  • Linux中多命令执行';'和'&&'的区别解释
  • Shell脚本避免重复执行的方法
  • linux进程监控shell脚本代码
  • 执行Shell脚本的4种方法及区别介绍
  • Linux shell常用的73条命令总结
  • linux定时任务出现command not found解决办法
  • Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2
  • linux shell在while中用read从键盘输入的实现

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • shell将脚本输出结果记录到日志文件的实现
    • 把mysql查询结果保存到文件的shell脚本
    • UNIX sh(Bourne Shell)脚本里面使用数组的两种方法
    • Linux Shell脚本系列教程(四):使用函数添加环境变量
    • Linux下交互式与非交互式修改用户密码的例子
    • linux服务器安全加固shell脚本代码
    • shell脚本监控mysql主从状态
    • getcwd cannot access parent directories错误解决方法
    • git 使用及常用命令
    • Linux shell脚本全面学习入门

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有