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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM