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
复制代码
posted @   天使不设防  阅读(2155)  评论(0编辑  收藏  举报
编辑推荐:
· 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框架的用法!
点击右上角即可分享
微信分享提示