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

Shell脚本中的字符串截取和规则变化

文章目录

  • 前言
  • if通配符判断
  • if判断多个条件
  • 规则变化字符串的两个示例
    • 改变中间段数字
    • 改变末尾段数字
  • 总结

前言

科技的发展会带来习惯的改变,特别是对于我们这批敲代码的,之前还积累一些奇巧淫技,想着在必要的时候卖弄一下,自从生成式AI火了以后,这些技巧再无用武之地,只要无脑丢给AI就好了,他会给你实现方法,完全不用关心过程,当然,如果你想了解过程,AI也能一步步分解,直到你完全了解为止,用什么查什么,完全不用担心,比你背下来写的还快,所以再背下来已经没有用了。好久没总结了,总觉得没有沉淀,实际上很多东西不需要沉淀了,但还是写写近几天用到的东西吧。

if通配符判断

if [[ "$line" == Player_* ]]; thenecho "line 是以 Player_ 开头的数据"
fi

直接用 * 匹配变化的部分即可,这里注意 Player_* 两侧不能使用 " 包裹

if判断多个条件

if [[ "$line" == Player_* || "$line" == Pet_* || "$line" == "Home" ]]; thenecho "line 是以 Player_ 或 Pet_ 开头的数据,也可能是 Home"
fi
if [[ "$line" == Player_* ]] || \[[ "$line" == Pet_* ]] || \[[ "$line" == "Home" ]]; thenecho "line 是以 Player_ 或 Pet_ 开头的数据,也可能是 Home"
fi

两种写法,我觉得第二种写法在条件较多时更清晰一些

规则变化字符串的两个示例

改变中间段数字

将字符串 Players_00000001-300 中间数字加200,实现代码如下:

line="Players_00000001-300"
prefix="${line%%_*}_"   # 提取前缀(到第一个 _ 为止)注意末尾加了_
middle="${line#*_}"     # 剩下部分为 00000001-300
number="${middle%-*}"   # 提取 00000001
suffix="${middle#*-}"   # 提取 300new_number=$(printf "%08d" $((10#$number + 200))) # 10#$number 防止数字有前导 0 被解释为八进制,保留8位,不足补0
echo "${prefix}${new_number}-${suffix}"           # 输出结果 Players_00000201-300

改变末尾段数字

将字符串 Community#Rank#00000001 末尾数字加200,实现代码如下:

line="Community#Rank#00000001"# 拆分前两段和最后的数字部分
prefix="${line%#*}"               # 删除最后一个 # 后的部分,保留前缀,Community#Rank
number="${line##*#}"              # 删除最前面的 # 及其前缀,保留最后数字,00000001# 计算新数字(保持8位,不足补0)
new_number=$(printf "%08d" $((10#$number + 200))) # 10#$number 防止数字被当作八进制# 组合结果
echo "${prefix}#${new_number}"      # 输出结果 Community#Rank#00000201

总结

  • Shell中可以使用通配符判断字符串匹配 if [[ "$line" == Player_* ]]; then ...
  • 多个判断条件使用 || 时可以写在 [[]] 内,也可以写在外部
  • 对于字符串的规则变化可以使用分割在拼接的方式,这让我想起来贪婪模式和非贪婪模式

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

弱者总是期盼机会降临降临到自己头上,即使掉在旁边也不敢去捡,恨不得全世界都逼着你接受才觉得拿的心安理得,有一点点阻碍便放弃了,生怕惹得任何一个人不高兴,但谁又会在意你呢?强者会想尽一切办法去争取,努力了才可能靠近一点点~

相关文章:

Shell脚本中的字符串截取和规则变化

文章目录 前言if通配符判断if判断多个条件规则变化字符串的两个示例改变中间段数字改变末尾段数字 总结 前言 科技的发展会带来习惯的改变&#xff0c;特别是对于我们这批敲代码的&#xff0c;之前还积累一些奇巧淫技&#xff0c;想着在必要的时候卖弄一下&#xff0c;自从生成…...

云账号安全事件应急响应指南:应对来自中国IP的异常访问

在当今数字化时代,云服务已成为企业IT基础设施的核心。然而,随之而来的安全挑战也日益突出。本文将详细介绍当发现云账号被来自中国的IP地址异常利用时,应如何快速有效地响应,以确保账户安全并最小化潜在风险。 1. 确认异常活动 首先,我们需要确认是否真的发生了安全事件…...

python番外

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 三月廿五 在开始数据库的分享之前笔者简单写以下关于python的番外。笔者这块可能写的不是很好csdn上面有很多大佬&#xff0c;笔者仅以自己的思维和想法与大家分享以下。 安装必看 笔者在这里贴一个网址https://www.…...

Jetson Orin NX 16G 配置GO1强化学习运行环境

这一次收到了Jrtson Orin NX, 可以进行部署了。上一次在nano上的失败经验 Jetson nano配置Docker和torch运行环境_jetson docker-CSDN博客 本次的目的是配置cuda-torch-python38环境离机运行策略。 Jetson Orin NX SUPER 1. 烧录镜像 参考链接在ubuntu系统中安装sdk manag…...

Embedding与向量数据库__0422

thinking&#xff1a;做一个项目 1&#xff0c;业务背景&#xff0c;价值 2&#xff0c;方法&#xff0c;工具 3&#xff0c;实践&#xff08;现有的代码&#xff0c;改写的代码&#xff09; cursor编程有个cursor settings ->privacy mode隐私模式&#xff0c;但是只要连上…...

正向代理和反向代理

正向代理和反向代理是两种在不同场景下使用的代理技术&#xff0c;它们有以下区别&#xff1a; 目标和作用 正向代理 目标 &#xff1a;主要是为客户端服务&#xff0c;帮助客户端去访问外部网络资源。例如&#xff0c;企业内部网络中的员工可能需要访问互联网&#xff0c;但直…...

Android JNI开发中头文件引入的常见问题与解决方案​,提示:file not found

Android JNI开发中头文件引入的常见问题与解决方案 问题场景&#xff08;新手易犯错误&#xff09; 假设你在开发一个JNI项目&#xff0c;想要实现一个线程安全的队列&#xff08;SafeQueue&#xff09;&#xff0c;于是直接在cpp目录下创建了safe_queue.h文件&#xff0c;并开…...

三网通电玩城平台系统结构与源码工程详解(二):Node.js 服务端核心逻辑实现

本篇文章将聚焦服务端游戏逻辑实现&#xff0c;以 Node.js Socket.io 作为主要通信与逻辑处理框架&#xff0c;展开用户登录验证、房间分配、子游戏调度与事件广播机制的剖析&#xff0c;并附上多个核心代码段。 一、服务端文件结构概览 /server/├── index.js …...

案例:Windows 作为客户端免密验证(公钥验证)

一、实验前提 1.服务器端为 Linux 系统&#xff0c;且能够正常运行相关命令和服务&#xff0c;如 systemctl、ssh 服务等。同时&#xff0c;客户端为 Windows 系统&#xff0c;且具备使用 SSH 客户端工具连接到 Linux 服务器的条件 2.Linux 服务器上已安装并配置好 SSH 服务&…...

leetcode 二分查找

704. Binary Search 代码&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;int res -1;while(left < right){int mid (leftright)/2;if(nums[mid] target){res mid;break;}…...

C++:STL模板

STL模板分为函数模板和类模板。 我想交换两个数字&#xff0c;但是类型不同&#xff0c;例如我想交换整形a,b&#xff0c;和double类型的d1,d2。如果使用C语言来实现&#xff0c;那么需要像下面一样写两个swap函数&#xff0c;但是除了类型不同&#xff0c;其它都一样&#xf…...

NumPy入门:从数组基础到数学运算

目录 一、NumPy 数组基础 &#xff08;一&#xff09;创建数组 &#xff08;二&#xff09;数组索引 &#xff08;三&#xff09;数组切片 二、数组操作 &#xff08;一&#xff09;形状操作 &#xff08;二&#xff09;数组合并与分割 三、基本数学运算 &#xff08;…...

文档管理 Document Management

以下是关于项目管理中 文档管理 的深度解析,结合高项(如软考高级信息系统项目管理师)教材内容,系统阐述文档管理的理论框架、核心流程及实战应用: 一、文档管理的基本概念 1. 定义 文档管理是对项目全生命周期中产生的各类文档进行规范化管理的过程,包括创建、存储、版…...

TCP三次握手与四次挥手面试回答版本

面试官&#xff1a;说一下TCP三次握手的过程 参考面试回答&#xff1a; 在第一次握手的时候、客户端会随机生成初始化序号、放到TCP报文头部的序号字段中、同时把SYN标志设置为1 这样就表示SYN报文&#xff08;这里是请求报文&#xff09;。客户端将报文放入 TCP 报文首部的序…...

Windows7升级Windows10,无法在此驱动器上安装Windows

一、现象描述 台式机工作站&#xff0c;从Windows7升级Windows10&#xff0c;采用MediaCreationTool_22H2制作U盘启动盘&#xff0c;安装系统遇到问题如下&#xff1a; 二、原因分析 是由于硬盘格式不是GPT硬盘&#xff0c;而Windows系统只能安装到GPT硬盘上&#xff0c;所以…...

【阿里云大模型高级工程师ACP习题集】2.2 扩展答疑机器人的知识范围

练习题 【单选题】在RAG应用的建立索引过程中,文本向量化的主要目的是( )。 A. 将文本转换为计算机能理解的数字形式,便于比较相似度 B. 对文本进行分类 C. 去除文本中的噪声数据 D. 提取文本中的关键词 【多选题】以下属于RAG应用中建立索引步骤的有( )。 A. 文档解析 B…...

Mininet--node.py源码解析

算法逻辑详解 1. 核心类结构 代码通过面向对象的方式定义了网络模拟中的各类节点&#xff0c;继承关系如下&#xff1a; Node ├── Host │ └── CPULimitedHost ├── Switch │ ├── UserSwitch │ ├── OVSSwitch │ ├── OVSBridge │ └── IVSS…...

龙虎榜——20250422

指数目前还是震荡为主&#xff0c;等待后续的选择方向 2025年4月22日龙虎榜行业方向分析 一、核心主线方向 化工&#xff08;新材料产能优化&#xff09; • 代表标的&#xff1a;红宝丽&#xff08;环氧丙烷/锂电材料&#xff09;、亚太实业&#xff08;农药中间体&#xff…...

掌握 Altium Designer:轻松定制“交换器件”工具栏

在PCB设计过程中&#xff0c;快速交换器件&#xff08;如电阻、电容、IC等&#xff09;是提高效率的关键。Altium Designer提供了灵活的工具栏定制功能&#xff0c;让用户可以创建专属的"交换器件"工具栏&#xff0c;将常用操作集中管理&#xff0c;减少菜单切换时间…...

npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名

npm的基本使用安装所有包&#xff0c;安装删除指定版本的包&#xff0c;配置命名别名 安装所有依赖指定版本安装/删除包给 npm 脚本配置“命令别名&#xff08;自定义命令&#xff09;” ✅ 一、安装所有包&#xff08;恢复依赖&#xff09; 如果项目中已经存在 package.json…...

transformer预测寿命

完整的Transformer剩余寿命预测代码体系。该代码已在锂电池和工业设备数据集验证&#xff0c;支持端到端训练和预测。 python import torch import numpy as np from torch import nn, optim from sklearn.preprocessing import MinMaxScaler from torch.utils.data import Da…...

如何将视频轻松转换为GIF动态图

在社交媒体和日常聊天中&#xff0c;GIF动态图因其体积小、循环播放的特点而广受欢迎。很多人希望将视频中的精彩片段制作成GIF图分享给朋友或用于内容创作。本文将详细介绍如何简单快速地将视频转换为GIF动态图&#xff0c;无需复杂软件&#xff0c;几步即可完成。 转换步骤 …...

一文详解Pytorch环境搭建:Mac电脑pip安装Pytorch开发环境

对于希望在本地环境中进行深度学习开发的开发者来说&#xff0c;配置PyTorch工具是至关重要的一步。。对于Mac用户而言&#xff0c;搭建PyTorch开发环境并不复杂&#xff0c;本文将详细介绍如何在Mac电脑上使用pip安装PyTorch开发环境&#xff0c;帮助开发者快速上手深度学习开…...

ios开发中xxx.debug.dylib not found

问题描述&#xff1a;error: Build input file cannot be found: /Users/zhoutao/Library/Developer/Xcode/DerivedData/XfLive-effvxneriinvzwexohdsevonmhsk/Build/Products/Debug-iphoneos/xFLive.app/xFLive.debug,dylib’, pid you forget to declare this file as an out…...

Linux嵌入式系统SQlite3数据库学习笔记

前言 SQlite3是一个轻量级、嵌入式的关系型数据库管理系统&#xff0c;其中具有的核心特点&#xff1a; 1&#xff1a;嵌入式数据库&#xff1a;无需独立服务器进程&#xff0c;数据库直接嵌入到应用程序中。 2&#xff1a;单文件存储&#xff1a;整个数据库存储为单个文件&…...

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端_mac 安装iterm2-CSDN博客 安装myzh 参考文章&#xff1a;https://blog.csdn.net/qq_44741467/article/details/135727124 下载地址&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 1、下载到本地 2、进入下载的…...

C++IO流

CIO流 IO: 向设备输入数据和输出数据 C的IO流设备: 文件、控制台、特定的数据类型(stringstream) c中,必须通过特定的已经定义好的类, 来处理IO(输入输出) 读写文件&#xff1a;文件流 文件流: 对文件进行读写操作 头文件: <fstream> 类库: ifstream 对文件输入&am…...

Swoole-添加自定义路由实现控制器访问

swoole本身不支持路由功能&#xff0c;默认情况我们实现路由访问可能要这样 $path $request->server[request_uri]switch ($path){case /favicon.ico:$response->status(404);$response->end(Not Found);break;case /abc/def/gg:$response->end("/abc/def/gg…...

Win10 关闭自动更新、关闭自动更新并重启

Windows 专业版及企业版用户可以通过组策略禁用或延迟更新。操作步骤如下&#xff1a; 按 Win R&#xff0c;输入 gpedit.msc 打开组策略编辑器。 导航到&#xff1a;计算机配置 > 管理模板 > Windows 组件 > Windows 更新。 修改以下设置&#xff1a; • 配置自…...

鸿道Intewell操作系统助力工业机器人控制系统自主可控

工业机器人与人形机器人的爆发式增长&#xff0c;正成为东土科技鸿道Intewell系统实现跨越式发展的核心引擎。从技术适配到生态重构&#xff0c;东土科技的三大核心能力与两大机器人赛道形成深度共振&#xff0c;其市场空间和产业地位将迎来指数级跃升。 一、工业机器人&…...

第十一届机械工程、材料和自动化技术国际会议(MMEAT 2025)

重要信息 官网&#xff1a;www.mmeat.net 时间&#xff1a;2025年06月23-25日 地点&#xff1a;中国-深圳 部分展示 征稿主题 智能制造和工业自动化 复合材料与高性能材料先进制造技术 自动化机器人系统 云制造与物联网集成 精密制造技术 智能生产线优化 实时数据分析与过…...

go语言八股文

1.go语言的接口是怎么实现 接口&#xff08;interface&#xff09;是一种类型&#xff0c;它定义了一组方法的集合。任何类型只要实现了接口中定义的所有方法&#xff0c;就被认为实现了该接口。 代码的实现 package mainimport "fmt"// 定义接口 type Shape inte…...

短视频广告创意策划简历模板

模板信息 简历范文名称&#xff1a;短视频广告创意策划简历模板&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;A4I63M 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到…...

2.Spring MVC与WebFlux响应式编程

目录 一、Spring MVC核心机制与工作原理 • 请求处理流程&#xff1a;DispatcherServlet分发机制、HandlerMapping与HandlerAdapter • 核心组件&#xff1a;ViewResolver、ModelAndView、拦截器&#xff08;Interceptor&#xff09; • 注解驱动开发&#xff1a;Controller、…...

【重走C++学习之路】16、AVL树

目录 一、概念 二、AVL树的模拟实现 2.1 AVL树节点定义 2.2 AVL树的基本结构 2.3 AVL树的插入 1. 插入步骤 2. 调节平衡因子 3. 旋转处理 4. 开始插入 2.4 AVL树的查找 2.5 AVL树的删除 1. 删除步骤 2. 调节平衡因子 3. 旋转处理 4. 开始删除 结语 一、概念 …...

蓝桥杯 19.合根植物

合根植物 原题目链接 题目描述 W 星球的一个种植园被分成 m n 个小格子&#xff08;东西方向 m 行&#xff0c;南北方向 n 列&#xff09;。每个格子里种了一株合根植物。 这种植物有个特点&#xff0c;它的根可能会沿着南北或东西方向伸展&#xff0c;从而与另一个格子的…...

爆改 toxml 组件 支持数据双向绑定 解决数据刷新问题

GGGGGGGGGGGGGGGGGithub地址自行研究 sbfkcel/towxml: 微信小程序HTML、Markdown渲染库https://github.com/sbfkcel/towxml原组件是以导入数据渲染信息为目的、本文以AI数据返回小程序为模拟效果演示 默认情况只在ready 环节进行渲染静态资源 1、对传入数据容器的位置做处理 …...

6.分布式数据库与分库分表

目录 一、分库分表核心概念 • 核心目标&#xff1a;突破单库性能瓶颈&#xff0c;应对海量数据与高并发 • ​​垂直拆分​​&#xff1a;按业务模块拆分&#xff08;用户库、订单库、商品库&#xff09; • ​​水平拆分​​&#xff1a;单表数据分片&#xff08;用户ID取模…...

基于javaweb的SSM+Maven小区失物招领系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Kubernetes finalize | namespace卡Terminatingfinalizers删除失败

目录 1、为什么会卡住&#xff1f;2、强制删除卡住的 Namespace&#xff1a;操作步骤1&#xff1a;导出当前 namespace 信息2&#xff1a;启动代理&#xff08;另一个终端&#xff09;以便使用 Kubernetes API Server3&#xff1a;使用 curl 强制删除 finalize 3、进阶排查&…...

Java数组

目录 一、定义 二、使用 2.1遍历数组 2.2获取数组长度 三、Arrays类 3.1数组填充 3.2数组排序 3.3数组转为字符串 3.4数组比较 3.5二分搜索 3.6数组复制 二维数组 一、定义 数组表示一个相同类型元素的集合 对于一个数组&#xff0c;可以有以下几种定义方法 int[…...

高级java每日一道面试题-2025年4月22日-基础篇[反射篇]-如何通过反射创建一个对象实例?

如果有遗漏,评论区告诉我进行补充 面试官: 如何通过反射创建一个对象实例&#xff1f; 我回答: 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的工具&#xff0c;允许程序在运行时检查和操作类、接口、字段和方法。反射不仅用于检查类的结构&#…...

Spring开发系列教程(26)——异步处理

在Servlet模型中&#xff0c;每个请求都是由某个线程处理&#xff0c;然后&#xff0c;将响应写入IO流&#xff0c;发送给客户端。从开始处理请求&#xff0c;到写入响应完成&#xff0c;都是在同一个线程中处理的。 实现Servlet容器的时候&#xff0c;只要每处理一个请求&…...

【2025最新Java面试八股】如何理解MySQL的MVCC机制?

面试回答要点 当面试官问及MySQL的MVCC机制时&#xff0c;可以这样组织回答&#xff1a; "MVCC(Multi-Version Concurrency Control&#xff0c;多版本并发控制)是MySQL实现高并发事务的一种重要机制&#xff0c;它通过保存数据在某个时间点的快照来实现非阻塞读操作。I…...

使用FreeRTOS解决单片机串口异步打印

单片机串口异步打印 文章目录 单片机串口异步打印前言设计思路准备队列创建完整代码 总结 前言 &#x1f30a;在单片机开发中串口的异步打印异步打印允许单片机在执行其他任务的同时进行打印操作&#xff0c;无需等待打印完成后再继续执行后续代码&#xff0c;避免了在多处调用…...

飞算 JavaAI 与 Spring Boot:如何实现微服务开发效率翻倍?

微服务架构凭借其高内聚、低耦合的特性&#xff0c;成为企业构建复杂应用系统的首选方案。然而&#xff0c;传统微服务开发流程中&#xff0c;从服务拆分、接口设计到代码编写、调试部署&#xff0c;往往需要耗费大量时间与人力成本。Spring Boot 作为 Java 领域最受欢迎的微服…...

Python 列表与元组深度解析:从基础概念到函数实现全攻略

在 Python 编程的广袤天地中&#xff0c;列表&#xff08;List&#xff09;和元组&#xff08;Tuple&#xff09;是两种不可或缺的数据结构。它们如同程序员手中的瑞士军刀&#xff0c;能高效地处理各类数据。从简单的数值存储到复杂的数据组织&#xff0c;列表和元组都发挥着关…...

vue 修改路由动态选择路由 改文件位置

vue 修改路由动态选择路由 改文件位置 main.jspermission.js...

Nginx openresty web服务 与 Go 原生web服务性能对比

1 概述 Nginx采用的是IO复用模型&#xff0c;能处理超高并发。 Go语言采用协程&#xff0c;能轻量级的处理超高并发。 那么在不考虑业务逻辑复杂的前提下&#xff0c;即假如将Nginx和Go都提供一个/test接口&#xff0c;并在接口逻辑中都只是让其做20毫秒的耗时操作&#xff0c…...

【音视频】FFmpeg解封装

解封装 复用器&#xff0c;比如MP4/FLV 解复用器&#xff0c;MP4/FLV 封装格式相关函数 avformat_alloc_context(); 负责申请一个AVFormatContext结构的内存,并进行简单初始化avformat_free_context(); 释放该结构里的所有东西以及该结构本身avformat_close_input();关闭解复…...