Shell中 ##%% 操作变量名
在linxu平台下少不了对变量名的处理,今天记录下shell中 ##%% 对变量名的操作。
#操作左侧,%操作右侧。
#号处理方式:
对于单个#,处理对象为变量中指定的第一个符号左侧字符串,
对于两个##,处理对象为变量中指定的最后一个符号左侧字符串。
%号处理方式:
对于单个%,操作对象是变量中指定的最后一个符号右侧字符串,
对于两个%%,处理对象为变量中指定的第一个符号右侧字符串。
示例:
直接描述太过抽象了,我们结合实际例子再看下具体用法。
1 fq=/pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz 2 3 4 echo "原始字符串fq: $fq" 返回原始字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz 5 6 7 echo "#号处理" 8 9 echo ${fq#/} 删除第一个字符“/” pub/data/groupA/ANI/F19/01.fq/HNX0023_1.fq.gz 10 echo ${fq##*_} 删除最后一个字符“_”及其左侧的字符 1.fq.gz 11 echo ${fq##*/} 删除最后一个字符“/”及其左侧的字符 HNX0023_1.fq.gz 12 13 14 echo "*号处理" 15 16 echo ${fq%_*} 删除最后一个字符“_”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023 17 echo ${fq%%_*} 删除第一个字符“_”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq/HNX0023 18 echo ${fq%%/*} 删除第一个字符“/”及其右侧的字符串 整个字符串被删除,返回空行 19 echo ${fq%/*} 删除最后一个字符“/”及其右侧的字符串 /pub/data/groupA/ANI/F19/01.fq 20 echo ${fq%_*}2.fq.gz 删除最后一个字符“_”及其右侧的字符串,连接新字符 /pub/data/groupA/ANI/F19/01.fq/HNX0023_2.fq.gz
作者:天使不设防
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!