shell中取字符串子串的幾種方式 截取substr


shell中取字符串子串的幾種方式

echo "123456789" | awk '{print substr($0,5,2)}'

截取

1)awk中函數substr
substr(源字符串,開始索引,長度)   開始索引以0開始
示例:
awk '{$a=substr($0,0,2);print $a;}' filename
假設文件中為只有一行為abcdefg,則返回結果為ab


(2)expr substr 
expr substr 字符串 開始索引 長度   開始索引以1開始
示例:

expr substr "abc" 2 2
顯示bc

(3)echo ${str:開始索引} 或 echo ${str:開始索引:長度}   開始索引為0
示例:
str="abc"
echo ${str:1},顯示bc
echo ${str:1:2},顯示bc

 

 

https://blog.csdn.net/Sharp_UP/article/details/74990277

1、cut命令截取


使用說明
cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標准輸出。
如果不指定 File 參數,cut 命令將讀取標准輸入。必須指定 -b、-c 或 -f 標志之一。
主要參數
-b :以字節為單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標志。
-c :以字符為單位進行分割。
-d :自定義分隔符,默認為制表符。
-f :與-d一起使用,指定顯示哪個區域。
-n :取消分割多字節字符。僅和 -b 標志一起使用。如果字符的最后一個字節落在由 -b 標志的 List 參數指示的<br />范圍之內,該字符將被寫出;否則,該字符將被排除。
1)、使用cut -c 可以截取以字符為單位的串區間


注:以 - 作為分隔符是截取對應區間內的串

       以 ,作為分隔符是截取對應位置的字符

2)、cut -b 用法和cut -c 相同,不同的是以字節為單位

 

2、# 號截取,刪除左邊字符,保留右邊字符。

echo ${var#*//}
其中 var 是變量名,# 號是運算符,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字符

3、 ## 號截取,刪除左邊字符,保留右邊字符。

echo ${var##*/}
##*/ 表示從左邊開始刪除最后(最右邊)一個 / 號及左邊的所有字符


4、 %號截取,刪除右邊字符,保留左邊字符

echo ${var%/*}
%/* 表示從右邊開始,刪除第一個 / 號及右邊的字符


5、%% 號截取,刪除右邊字符,保留左邊字符

echo ${var%%/*}
%%/* 表示從右邊開始,刪除最后(最左邊)一個 / 號及右邊的字符


6、 從左邊第幾個字符開始,及字符的個數

echo ${var:0:5}
其中的 0 表示左邊第一個字符開始,5 表示字符的總個數。


7、 從左邊第幾個字符開始,一直到結束。

echo ${var:7}
其中的 7 表示左邊第8個字符開始,一直到結束。


8、從右邊第幾個字符開始,及字符的個數

echo ${var:0-7:3}
其中的 0-7 表示右邊算起第七個字符開始,3 表示字符的個數。


8. 從右邊第幾個字符開始,一直到結束。

echo ${var:0-7}
表示從右邊第七個字符開始,一直到結束。

注:左邊的第一個字符是用 0 表示,右邊的第一個字符用 0-1 表示

 


免責聲明!

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



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