expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。
1、计算字符串的长度。我们可以用awk中的length(s)进行计算。我们也可以用echo中的echo ${#string}进行计算,当然也可以expr中的expr length $string 求出字符串的长度。

举例

[root@localhost shell]# string="hello,everyone my name is xiaoming" [root@localhost shell]# echo ${#string} 34 [root@localhost shell]# expr length "$string" 34

2、expr中的expr index $string substring索引命令功能在字符串$string上找出substring中字符第一次出现的位置,若找不到则expr index返回0或1。
举例
[root@localhost shell]# string="hello,everyone my name is xiaoming" [root@localhost shell]# expr index "$string" my 11 [root@localhost shell]# expr index "$string" nihao 1
3、expr中的expr match $string substring命令在string字符串中匹配substring字符串,然后返回匹配到的substring字符串的长度,若找不到则返回0。
举例
[root@localhost shell]# string="hello,everyone my name is xiaoming" [root@localhost shell]# expr match "$string" my 0 [root@localhost shell]# expr match "$string" hell.* 34 [root@localhost shell]# expr match "$string" hell 4 [root@localhost shell]# expr match "$string" small 0
4、在shell中可以用{string:position}和{string:position:length}进行对string字符串中字符的抽取。第一种是从position位置开始抽取直到字符串结束,第二种是从position位置开始抽取长度为length的子串。而用expr中的expr substr $string $position $length同样能实现上述功能。
举例
root@localhost shell]# string="hello,everyone my name is xiaoming" [root@localhost shell]# echo ${string:10} yone my name is xiaoming [root@localhost shell]# echo ${string:10:5} yone [root@localhost shell]# echo ${string:10:10} yone my na [root@localhost shell]# expr substr "$string" 10 5 ryone
注意:echo ${string:10:5}和 expr substr "$string" 10 5的区别在于${string:10:5}以0开始标号而expr substr "$string" 10 5以1开始标号。
5、删除字符串和抽取字符串相似${string#substring}为删除string开头处与substring匹配的最短字符子串,而${string##substring}为删除string开头处与substring匹配的最长字符子串。
举例
[root@localhost shell]# string="20091111 readnow please" [root@localhost shell]# echo ${string#2*1} 111 readnow please [root@localhost shell]# string="20091111 readnow please" [root@localhost shell]# echo ${string##2*1} readnow please
解析:第一个为删除2和1之间最短匹配,第二个为删除2和1之间的最长匹配。
6、替换子串${string/substring/replacement}表示仅替换一次substring相配字符,而${string//substring//replacement}表示为替换所有的substring相配的子串。
举例
[root@localhost shell]# string="you and you with me" [root@localhost shell]# echo ${string/you/me} me and you with me [root@localhost shell]# string="you and you with me" [root@localhost shell]# echo ${string//you/me} me and me with me

字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。相关推荐

  1. linux中使用u盘和光驱的命令_Linux学习之挂载光盘和U盘(六)

    Linux下挂载光盘和U盘 挂载 linux下硬盘.U盘.软盘.移动硬盘都必须挂载后才能使用,不过硬盘的挂载是系统自动进行的. linux中每一个硬件都有一个设备文件名,就是将U盘什么的设备文件名与挂 ...

  2. Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决

    Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决 参考:https://b ...

  3. suse 新增用户oracle,在SUSE Linux中让其他用户能运行Oracle命令

    SUSE Linux中让其他用户能运行Oracle命令的方法介绍: suid/guid的问题: 要求非Oracle用户也能运行sqlplus等oracle命令. 解决方法: 假如希望设置s u i d ...

  4. linux 中常见的压缩和解压缩的命令

    # linux 中常见的压缩和解压缩的命令 一.tar 1.解压: tar zxvf filename.tar 2.压缩: tar czvf filename.tar dirname 二.gz 1.解 ...

  5. linux中的 ip addr 和 ip link命令详解

    linux中的 ip addr 和 ip link命令详解 一.ip addr命令 我是使用的linux系统是redhat7.3,其它linux的相关操作大同小异(在这里不做赘述) 1.查看 (1). ...

  6. 在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全

    在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全 行复制: [yy]复制光标所在行 [p]在光标位置粘贴复制的内容 多行复制: [v]从当前位置进行可视化模式([Ctrl+v] ...

  7. Linux中vi不保存强制退出的命令是什么?

    本篇文章介绍了Linux中vi不保存强制退出的命令,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧. 所有的 Unix Like 系统都会内建 vi 文书 ...

  8. linux命令wget的url路径太长,Linux中WGET下载https链接及WGET命令的详解

    Linux中WGET下载https链接及WGET命令的详解 使用如下的命令下载https链接: ```bash wget -r -np -nd --accept=gz --no-check-certi ...

  9. Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

最新文章

  1. 什么是以太坊,它是区块链2.0的代表,它又什么特点?
  2. 在Google Android模拟器中使用SD卡(命令行和eclipse环境)
  3. 数学知识笔记:拉格朗日乘子
  4. Scenario 7 – HP C7000 VC FlexFabric Tunneled VLANs and SUS A/A vSphere
  5. 一个简单词法分析器的实现代码(java实现)
  6. 2020年视频号发展白皮书
  7. 闭包允许内层函数引用父函数中的变量,但是该变量是最终值
  8. 天猫双11第一波今晚开启 预计2天内1亿人收到货
  9. [原创]聊聊如何在职场中发邮件
  10. untiy对过相机参数计算视场角
  11. BEAMnrc参数设置_MainInputs(3)
  12. Excel控制AutoCad进行坐标标注
  13. numpy_multiply函数
  14. C4D材质原理揭秘笔记-初学必看
  15. 定时任务(每晚12点执行)
  16. 关于Blurry无法加载的问题
  17. OpenHarmony社区开源代码下载及编译
  18. 从零开始的全栈工程师——html篇1.3
  19. python cookbook 豆瓣_学习python求推荐一波书籍?
  20. 日志@Slf4j介绍使用及配置等级

热门文章

  1. 网站SEO实践之 - 解决网站不收录的必备思路
  2. 解决ubuntu下不能播放wmv等格式视频的方法
  3. JAVA游戏孙悟空闯阴曹地府,孙悟空一共去了几次阴曹地府?拿着金箍棒大闹地府的是猴王的鬼魂?...
  4. ECharts动画使用
  5. 微信站街的要素和弊端
  6. ❤️ file format not recognized; treating as linker script 【莫名奇妙的bug系列】❤️
  7. fusion studio 17新功能及安装教程
  8. Java面试宝典,怎样用cmd运行java文件
  9. 安装linux系统键盘布局,fedora键盘键位布局layout
  10. PowerShell(0)-Windows PowerShell交互界面