欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux 使用shell脚本处理字符串的实现

程序员文章站 2022-03-23 16:07:56
1. 截取字符串的前8位2. 分割、替换字符串2.1 命令说明 符号 释义 * 通配符,用于匹配字符串将被删除的子串...

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 字符串