BASH 中的字符串处理

得到长度
  1. %x="abcd"
  2. #方法一
  3. %expr length $x
  4. 4
  5. # 方法二
  6. %echo ${#x}
  7. 4
  8. # 方法三
  9. %expr "$x" : ".*"
  10. 4
  11. # expr 的帮助
  12. # STRING : REGEXP   anchored pattern match of REGEXP in STRING
复制代码


查找子串
  1. %expr index  $x "b"
  2. 2
  3. %expr index  $x "a"
  4. 1
  5. %expr index  $x "b"
  6. 2
  7. %expr index  $x "c"
  8. 3
  9. %expr index  $x "d"
  10. 4
复制代码


得到子字符串
  1. # 方法一
  2. # expr <string> startpos length
  3. %expr substr "$x" 1 3
  4. abc
  5. %expr substr "$x" 1 5
  6. abcd
  7. %expr substr "$x" 2 5
  8. bcd
  9. # 方法二
  10. # ${x:pos:lenght}
  11. %echo ${x:1}
  12. bcd
  13. %echo ${x:2}
  14. cd
  15. %echo ${x:0}
  16. abcd
  17. %echo ${x:0:2}
  18. ab
  19. %pos=1
  20. %len=2
  21. %echo ${x:$pos:$len}
  22. bc
复制代码


匹配正则表达式
  1. # 打印匹配长度
  2. %expr match $x "."
  3. 1
  4. %expr match $x "abc"
  5. 3
  6. %expr match $x "bc"
  7. 0
复制代码


字符串的掐头去尾
  1. %x=aabbaarealwwvvww
  2. %echo "${x%w*w}"
  3. aabbaarealwwvv
  4. %echo "${x%%w*w}"
  5. aabbaareal
  6. %echo "${x##a*a}"
  7. lwwvvww
  8. %echo "${x#a*a}"
  9. bbaarealwwvvww
复制代码

其中 , # 表示掐头, 因为键盘上 # 在 $ 的左面。
其中 , % 表示%,  因为键盘上 % 在 $ 的右面。
单个的表示最小匹配,双个表示最大匹配。
也就是说,当匹配的有多种方案的时候,选择匹配的最大长度还是最小长度。

字符串的替换
  1. %x=abcdabcd
  2. %echo ${x/a/b} # 只替换一个
  3. bbcdabcd
  4. %echo ${x//a/b} # 替换所有
  5. bbcdbbcd
复制代码

不可以使用 regexp , 只能用 * ? 的 文件扩展方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[c++基本语法]——构造函数初始化列表

c构造函数初始化成员变量列表&#xff1a; 1 #pragma once2 class Node3 {4 public:5 int data; // 权值6 Node *parent; // 父节点7 Node *left; // 左子节点8 Node *right; // 右子节点9 public: 10 // 该段代码是c的基本语法中的“…

行业开源应用集锦

06年为开放系统世界写的个封面报道&#xff0c;作者&#xff1a;顾宏军 对开源操作系统、开源数据库&#xff0c;到开源的Web服务器等&#xff0c;基础平台类的开源产品我们已很熟悉。这里&#xff0c;我们将品评从全球数以百万计的开源软件中&#xff0c;挑选出来的CRM、ERP、…

CSS之EM属性

什么是EM&#xff1f; 在一个空白的HTML文档内&#xff0c;你没有任何关于字体大小的声明而只使用默认设置。在大多数浏览器上为html和body标签的默认字体大小为100% 使用EM为单位一定要知道父元素的设置&#xff0c;因为EM是一个相对值&#xff0c;是一个相对于父元素的值 如…

vim多行增加缩进

在Normal Mode下&#xff0c;命令>>将对当前行增加缩进&#xff0c;而命令<<则将对当前行减少缩进。我们可以在命令前使用数字&#xff0c;来指定命令作用的范围。例如以下命令&#xff0c;将减少5行的缩进&#xff1a; 5<< 在Insert/Replace Mode下&#…

PyQt6 QTimer计时器控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计52条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

前台关于跨域的警告A cookie associated with a cross-site resource at .........,代理服务器

前台关于跨域的警告A cookie associated with a cross-site resource at …&#xff0c;代理服务器 A cookie associated with a cross-site resource at … 解决该警告的方法&#xff1a; 在配置文件中添加配置如下&#xff1a; "proxy": {"/api": {&quo…

按任意的字段旋转的存储过程

---------------------------------------------------------------------------- -- 分段截取函数 ---------------------------------------------------------------------------- CREATE FUNCTION DBO.FUN_SplitStr( S VARCHAR(8000), -- 包含多个数据项的字符串 P…

CSS之REM属性

什么是REM: rem指根em。它的产生是为了帮助人们解决em所带来的计算问题&#xff0c;它是字体排版的一个单位&#xff0c;等同于根font-size。这意味着1rem等同于<html>中的font-size 实例&#xff1a; 正如您看到的&#xff0c;无论您在哪里设置它&#xff0c;1rem的取…

Linux系统下.ko文件是什么文件?.so文件是什么文件?

.so 文件是动态链接库文件&#xff0c;相当于 win下的 .dll 文件。 .ko 是内核模块文件&#xff0c;是内核加载的某个模块&#xff0c;一般是驱动程序。

vue-cli3全面配置详解

vue-cli3全面配置详解 vue-cli3-config 创建项目 配置环境变量 通过在package.json里的scripts配置项中添加–mode xxx来选择不同环境 在项目根目录中新建.env, .env.production, .env.analyz等文件 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧…

Android 开发环境在 Windows7 下的部署安装

Android SDK Android SDK 为 Android 应用的开发、测试和调试提了必要的API库和开发工具。 ADT Bundle 下载 如果你是一个android 开发新手&#xff0c;推荐你下载使用 ADT Bundle 以快速开始android 的开发&#xff0c;它提供了必要的 android sdk 组件和一个内置 ADT 的 Ecli…

CSS之REM和EM的区别

事实证明。rem 和 em 均有各自的优缺点。应给根据实际情况来判断其使用方式 1.如果这个属性是根据它的font-size进行测量&#xff0c;则该属性最好使用em 2.其他的一切事物均使用rem #

Cisco路由器故障诊断技术(3)

Cisco路由器故障诊断技术(3)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />3.4 trace命令 trace命令提供路由器到目的地址的每一跳的信息。它通过控制IP报文的生存期&#xff08;TTL&#xff09;字段来实现。TTL等于1的ICM…

《疯狂的简洁》书摘

头脑和常识催生简洁 复杂会让人带来安全感&#xff0c;复杂和简洁是一对矛盾&#xff0c;复杂不一定优于简洁 复杂可以变得很丑陋 一切始于简洁&#xff0c;坚持原则&#xff0c;抵御复杂&#xff0c;头脑聪慧且真心实意 人们喜欢事情的透明化 直率即简洁&#xff0c;迂回就是复…

linux kill 关闭进程命令

点评&#xff1a;杀死进程最安全的方法是单纯使用kill命令&#xff0c;不加修饰符&#xff0c;不带标志。 首先使用ps -ef命令确定要杀死进程的PID&#xff0c;然后输入以下命令&#xff1a; # kill -pid 注释&#xff1a;标准的kill命令通常都能达到目的。终止有问题的进…

侯捷:搞Windows程序设计我们需要啥

侯捷&#xff1a;搞Windows程序设计我们需要啥如果你是一位资深的Windows程序员&#xff0c;相信你对Jeffrey Richter一定不会陌生&#xff0c;是不是有些崇拜和景仰&#xff1f;如果你是一位刚涉足这个领域的Windows程序员&#xff0c;Jeffrey Richter是何许人也许你还不能立刻…