当前位置: 首页 > article >正文

Shell篇-字符串处理

目录

1.变量引用

2.获取字符串长度

3.字符串截取

4.删除子字符串

5.字符串替换

总结:


Bash(Shell 脚本)中的字符串处理语法。以下是对其的介绍和总结:Bash 变量可以使用不同的语法来获取、修改和删除字符串的内容。图片中列出了一些常用的字符串操作方法,包括:

1.变量引用

$(parameter): 直接返回变量 parameter 的值。

name="Alice"
echo ${name}   # 输出:Alice

2.获取字符串长度

${#parameter}: 返回 parameter 变量的字符长度。

str="Hello"
echo ${#str}   # 输出:5

3.字符串截取

${parameter:offset}: 从 offset 位置开始截取字符串。

str="abcdef"
echo ${str:2}   # 输出:cdef

${parameter:offset:length}: 从 offset 位置截取 length 长度的字符串。

str="abcdef"
echo ${str:2:3}   # 输出:cde

4.删除子字符串

${parameter#word}: 从字符串开头匹配 word,删除最短匹配部分。

file="file.txt.tar.gz"
echo ${file#*.}   # 输出:txt.tar.gz(删除第一个.及之前内容)

${parameter##word}: 从字符串开头匹配 word,删除最长匹配部分。

file="file.txt.tar.gz"
echo ${file##*.}   # 输出:gz(删除最后一个.及之前内容)

${parameter%word}: 从字符串结尾匹配 word,删除最短匹配部分。

file="file.txt.tar.gz"
echo ${file%.*}    # 输出:file.txt.tar(删除最后一个.及之后内容)

${parameter%%word}: 从字符串结尾匹配 word,删除最长匹配部分。

file="file.txt.tar.gz"
echo ${file%%.*}   # 输出:file(删除第一个.及之后内容)

5.字符串替换

${parameter/string/replace}: 替换变量 parameter 中第一个匹配的 string 为 replace。

str="hello world hello"
echo ${str/hello/Hi}   # 输出:Hi world hello

${parameter//string/replace}: 替换 parameter 中所有匹配的 string 为 replace。

str="hello world hello"
echo ${str//hello/Hi}   # 输出:Hi world Hi

总结:

# 和 % 用于从开头结尾删除匹配的字符串,其中单个符号(# 或 %)是最短匹配,双符号(## 或 %%)是最长匹配。

注意以结尾删除的例子;删除匹配a*C未成功的原因是:字符串data123aBCXYZ结尾不是C。无法匹配

str="data123aBCXYZ"
echo ${str%a*C}   # 输出:data123XYZ


http://www.kler.cn/a/530585.html

相关文章:

  • C语言教学第四课:控制结构
  • Java集合+并发(部分)
  • 新到手路由器宽带上网设置八步法
  • 大模型综合性能考题汇总
  • 使用 HTTP::Server::Simple 实现轻量级 HTTP 服务器
  • 十分钟快速上手 markdown
  • Windows编译FreeRDP步骤
  • 视觉状态空间模型(VMamba)的解读
  • RouterChain
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.5 高级索引应用:图像处理中的区域提取
  • 【Block总结】完全注意力Fully Attentional,同时捕捉空间和通道的注意力|即插即用
  • 我问了DeepSeek和ChatGPT关于vue中包含几种watch的问题,它们是这么回答的……
  • MiniQMT与QMT:量化交易软件的对比分析
  • C语言------二维数组指针从入门到精通
  • 一文了解阿里的 Qwen2.5 模型
  • 79-《袋鼠花》
  • Java知识速记:栈和堆
  • Java synchronized的实现原理?
  • 问题的价值 ( Value of Question ) 公式
  • Games202Lecture5 Real time Environment mapping实时环境光照
  • ADC及DMA的使用原理和使用过程
  • 详细介绍:使用 Axios 上传图片文件
  • ESP32 Wroom (无串口芯片的简版C3) 烧录
  • 攻防世界 fileclude
  • 基于springboot+vue的哈利波特书影音互动科普网站
  • AMD架构简单读书笔记1