Linux 使用shell脚本处理字符串的实现
1. 截取字符串的前8位
2. 分割、替换字符串
2.1 命令说明
符号 | 释义 |
---|---|
* | 通配符,用于匹配字符串将被删除的子串 |
. | 分割符,可以为任意一个或多个字符 |
% | 从右向左匹配 |
# | 从左向右匹配 |
/ | 表示替换 |
% # / | 非贪婪匹配,即匹配符合通配符的最短结果 |
% ## // | 贪婪匹配,即匹配符合通配符的最长结果 |
示例 | 含义 |
---|---|
${#value} | 计算value字符串的字符数量 |
${value%.*} 或 ${value%%.*} | 删除value字符串中以分隔符"."匹配的右侧字符,保留左侧字符 |
${value#*.} 或 ${value##*.} | 删除value字符串中以分隔符"."匹配的左侧字符,保留右侧字符 |
${value/old/new} 或 ${value//old/new} | 用new子串替换value字符串中匹配的old子串 |
2.2 应用实例
定义变量name=odysee_odysee
计算value字符串的字符数量
删除value字符串中以分隔符"."匹配的右侧字符,保留左侧字符
删除value字符串中以分隔符"."匹配的左侧字符,保留右侧字符
用new子串替换value字符串中匹配的old子串
3. 字符串截取
3.1 命令说明
示例 | 含义 |
---|---|
${value:position} | 在字符串value中,从位置position开始提取子串(从左到右匹配) |
${value:position:length} | 在字符串value中,从位置position开始提取长度为length的子串(从左到右匹配) |
${value:0-offset} | 在字符串value中,从右到左截取offset个字符 |
${value:0-offset:length} | 在字符串value中,从右到左截取offset个字符的前length个 |
3.2 应用实例
定义变量name=mynameisodysee
在字符串name中,从位置2开始提取子串(从左到右匹配)
在字符串name中,从位置2开始提取长度为4的子串(从左到右匹配)
在字符串name中,从右到左截取8个字符
在字符串name中,从右到左截取8个字符的前两个
定义变量string=abc12342341 ,以下为截取示例
定义变量str="abcdef",以下为截取示例
4. 判断变量的值
4.1 命令说明
示例 | 含义 |
---|---|
${string-default} | 如果string变量未定义,返回值为default的值,否则返回变量的值 |
${string:-default} | 如果string变量未定义,或者其值为空,返回值为default的值,否则返回变量的值 |
${string=default} | 如果string变量未定义,返回值为default的值,并将default赋值给string,否则返回变量的值 |
${string:=default} | 如果string变量未定义,或者其值为空,返回值为default的值, 并将default赋值给string,否则返回变量的值 |
${string+default} | 如果string已赋值,其值用default替换,否则不进行任何替换 |
${string:+default} | 如果string已赋值,其值用default替换,否则不进行任何替换 |
${string?err_msg} | 当变量未被定义时,将err_msg消息发送到标准错误输出 |
${string:?err_msg} | 当变量未被赋值时,将err_msg消息发送到标准错误输出 |
4.2 应用实例
${string-default}:如果string变量未定义,返回值为default的值,否则返回变量的值
${string:-default}:如果string变量未定义,或者其值为空,返回值为default的值,否则返回变量的值
${string=default}:如果string变量未定义,返回值为default的值,并将default赋值给string,否则返回变量的值
${string:=default}:如果string变量未定义,或者其值为空,返回值为default的值,并将default赋值给string,否则返回变量的值
${string+default}:如果string已赋值,其值用default替换,否则不进行任何替换
${string:+default}:如果string已赋值,其值用default替换,否则不进行任何替换
${string?err_msg}:当变量未被定义时,将err_msg消息发送到标准错误输出
${string:?err_msg}:当变量未被赋值时,将err_msg消息发送到标准错误输出
5. 获取字符串长度
6. 获取字符串所在位置
7. 获取从字符串开头到子串的最大长度
8. 显示匹配的内容
9. 显示不匹配的内容
10. 去掉字符串末尾的字符
使用df -th获取磁盘信息,并将使用率赋给变量来与阈值进行对比,如果存在%号无法进行对比,所以需要去掉变量中的%号,可以使用${var%?}的格式来去掉最后一个字符
到此这篇关于linux 使用shell脚本处理字符串的实现的文章就介绍到这了,更多相关shell处理字符串内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
-
Linux shell脚本编程if语句的使用方法(条件判断)
-
Linux shell脚本中字符串连接的方法
-
Linux下使用Shell脚本实现ftp的自动上传下载的代码小结
-
Linux中使用Shell脚本查看Java线程的CPU使用情况
-
shell脚本中使用iconv实现批量文件转码的代码分享
-
Linux下实现SNMP一键安装的Shell脚本
-
Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享
-
linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法
-
用来查看linux内存使用情况的shell脚本