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.mzph.cn/pingmian/68873.shtml

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

相关文章

面经——C语言——指针大小,内存分配,野指针,大小端

文章目录 指针大小分段C语言内存分配1. 静态内存分配1.1 栈内存分配1.2 数据段内存分配 2. 动态内存分配2.1 malloc(Memory Allocation)2.2 free(Free Memory) 动态内存分配的流程例子 野指针野指针的原因:防止野指针的…

CMake项目编译与开源项目目录结构

Cmake 使用简单方便,可以跨平台构建项目编译环境,尤其比直接写makefile简单,可以通过简单的Cmake生成负责的Makefile文件。 如果没有使用cmake进行编译,需要如下命令:(以muduo库echo服务器为例)…

书生大模型实战营7

文章目录 L1——基础岛提示词工程实践什么是Prompt(提示词)什么是提示工程提示设计框架CRISPECO-STAR LangGPT结构化提示词LangGPT结构编写技巧构建全局思维链保持上下文语义一致性有机结合其他 Prompt 技巧 常用的提示词模块 浦语提示词工程实践(LangGPT版)自动化生成LangGPT提…

Shadow DOM举例

这东西具有隔离效果&#xff0c;对于一些插件需要append一些div倒是不错的选择 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"utf-8"> <title>演示例子</title> </head> <body> <style&g…

SQLAlchemy 2.0的简单使用教程

SQLAlchemy 2.0相比1.x进行了很大的更新&#xff0c;目前网上的教程不多&#xff0c;以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎&#xff0c;链接到mysql engine crea…

《LLM大语言模型+RAG实战+Langchain+ChatGLM-4+Transformer》

文章目录 Langchain的定义Langchain的组成三个核心组件实现整个核心组成部分 为什么要使用LangchainLangchain的底层原理Langchain实战操作LangSmithLangChain调用LLM安装openAI库-国内镜像源代码运行结果小结 使用Langchain的提示模板部署Langchain程序安装langserve代码请求格…

某网盘工具,限速下载上传!

聊一聊 某度盘对于个人和未开通会员的情况下&#xff0c;容量还是有点小。最近自己的盘满了&#xff0c;还有很多东西放不进去。转眼发现正在下载的寻雷&#xff0c;就点进去看看寻雷盘有多大&#xff0c;一看&#xff0c;还好&#xff0c;比某度盘容量大。 但一想&#xff0…

62.病毒在封闭空间中的传播时间|Marscode AI刷题

1.题目 问题描述 在一个封闭的房间里摆满了座位&#xff0c;每个座位东西向和南北向都有固定 1 米的间隔。座位上坐满了人&#xff0c;坐着的人可能带了口罩&#xff0c;也可能没有带口罩。我们已经知道房间里的某个人已经感染了病毒&#xff0c;病毒的传播速度是每秒钟感染距…

【后端开发】字节跳动青训营Cloudwego脚手架

Cloudwego脚手架使用 cwgo脚手架 cwgo脚手架 安装的命令&#xff1a; GOPROXYhttps://goproxy.cn/,direct go install github.com/cloudwego/cwgolatest依赖thriftgo的安装&#xff1a; go install github.com/cloudwego/thriftgolatest编辑echo.thrift文件用于生成项目&…

LabVIEW纤维集合体微电流测试仪

LabVIEW开发纤维集合体微电流测试仪。该设备精确测量纤维材料在特定电压下的电流变化&#xff0c;以分析纤维的结构、老化及回潮率等属性&#xff0c;对于纤维材料的科学研究及质量控制具有重要意义。 ​ 项目背景 在纤维材料的研究与应用中&#xff0c;电学性能是评估其性能…

39. I2C实验

一、IIC协议详解 1、ALPHA开发板上有个AP3216C&#xff0c;这是一个IIC接口的器件&#xff0c;这是一个环境光传感器。AP3216C连接到了I2C1上: I2C1_SCL: 使用的是UART4_TXD这个IO&#xff0c;复用位ALT2 I2C1_SDA: 使用的是UART4_RXD这个IO。复用为ALT2 2、I2C分为SCL和SDA&…

Python 深拷贝与浅拷贝:数据复制的奥秘及回溯算法中的应用

引言 在 Python 编程领域&#xff0c;数据复制是极为常见的操作。而深拷贝和浅拷贝这两个概念&#xff0c;如同紧密关联却又各具特色的双子星&#xff0c;在数据处理过程中扮演着重要角色。深入理解它们&#xff0c;不仅有助于编写出高效、准确的代码&#xff0c;还能避免许多…

DeepSeek相关技术整理

相关介绍 2024年12月26日&#xff0c;DeepSeek V3模型发布&#xff08;用更低的训练成本&#xff0c;训练出更好的效果&#xff09;671B参数&#xff0c;激活37B。2025年1月20日&#xff0c;DeepSeek-R1模型发布&#xff08;仅需少量标注数据&#xff08;高质量长cot&#xff…

《基于Scapy的综合性网络扫描与通信工具集解析》

在网络管理和安全评估中&#xff0c;网络扫描和通信是两个至关重要的环节。Python 的 Scapy 库因其强大的网络数据包处理能力&#xff0c;成为开发和实现这些功能的理想工具。本文将介绍一个基于 Scapy 编写的 Python 脚本&#xff0c;该脚本集成了 ARP 扫描、端口扫描以及 TCP…

GEE | 计算Sentinel-2的改进型土壤调整植被指数MSAVI

同学们好&#xff01;今天和大家分享的是 “改进型土壤调整植被指数MSAVI”&#xff0c;它能够更准确地反映植被生长状态&#xff0c;且广泛应用于植被覆盖监测、生态环境评估等领域。 1. MSAVI 改进型土壤调整植被指数&#xff08;MSAVI&#xff09;是一种针对植被覆盖区域土…

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作

要实现使用K210单片机进行猫脸检测&#xff0c;并在检测到猫脸覆盖屏幕50%以上时执行特定操作&#xff0c;以及通过WiFi上传图片到微信小程序&#xff0c;并在微信小程序中上传图片到开发板进行训练&#xff0c;可以按照以下步骤进行&#xff1a; 1. 硬件连接 确保K210开发板…

13 尺寸结构模块(size.rs)

一、size.rs源码 // Copyright 2013 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENSE…

Qt 5.14.2 学习记录 —— 이십삼 绘图API

文章目录 1、概念2、API 1、概念 Qt的各个控件本质是画出来的。有时候现有控件无法完成所需功能&#xff0c;那就用绘图API来自定义控件。 QPainter提供一系列的绘图方法 QPaintDevice表示用户画的要放到哪个设备上&#xff0c;QWidget是它的子列 QPen是画笔 QBrush是画刷&…

[c语言日寄]C语言类型转换规则详解

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

进阶数据结构——双向循环链表

目录 前言一、定义与结构二、特点与优势三、基本操作四、应用场景五、实现复杂度六、动态图解七、代码模版&#xff08;c&#xff09;八、经典例题九、总结结语 前言 这一期我们学习双向循环链表。双向循环链表不同于单链表&#xff0c;双向循环链表是一种特殊的数据结构&…