在編寫shell指令碼的時候,很多情況下,我們都會遇到擷取字串的一部分這種需求。由於不同的原始字串差距較大,導致解決這個的方法也分不同的情況。
所以這篇文章不可能一次性的全部寫完,我會邊寫邊改,也會不停的公升級更新。
第一種情況是字串只有一行,且這一行的內容沒有什麼特殊的分隔符,比如每個字段之間用空格分開。
也就是說這是一串亂碼字串,我們需要在這串亂碼字串中擷取某乙個關鍵字之前或者之後的內容。
// 下面的varible表示的是需要處理的字串變數
// string是需要在變數中搜尋匹配的字串
// 「*」是乙個萬用字元,位置按照下面的配置即可
$ // 從左向右擷取第乙個string後的字串
$ // 從左向右擷取最後乙個string後的字串
$ // 從右向左擷取最後乙個string後的字串
$ // 從右向左擷取第乙個string後的字串
下面進行舉例說明:
先假設我需要處理的字串是myvar。
myvar=test1test2test3luanmatest2test3.test4 // 定義變數myvar
echo $myvar // 將myvar這個變數列印出來
//得到的結果是: test1test2test3luanmatest2test3.test4
echo $
//得到的結果是: test3luanmatest2test3.test4
echo $
//得到的結果是: test3.test4
echo $
//得到的結果是: test1test2test3luanma
echo $
//得到的結果是: test1
假設我們需要從原來字串中擷取乙個固定位置的子字串,那麼可以用類似於程式語言中的索引進行擷取。
$ ## 擷取變數varible從n1開始的n2個字元,組成乙個子字串。
## 注意是n1開始,然後是擷取n2個字元,並不是擷取到n2的位置
## 繼續以上面的$myvar 為例進行說明
echo $
##得到的結果是: test2test3
以上兩種方式都針對的是簡單的字串,也就是一行亂碼字串的情況下,進行處理。
其餘的待續。
Shell字串擷取
一 linux shell 擷取字元變數的前8位,有方法如下 substr var 開始擷取位 擷取長度 1.expr substr a 1 8 2.echo a awk 3.echo a cut c1 8 4.echo 5.expr a 6.echo a dd bs 1 count 8 2 dev...
shell字串擷取
filed under shell shell字串的擷取的問題 一 linux shell 擷取字元變數的前8位,有方法如下 1.expr substr a 1 8 2.echo a awk 3.echo a cut c1 8 4.echo 5.expr a 6.echo a dd bs 1 cou...
shell字串擷取
假設有變數 var echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htmecho 表示從左邊開始刪除最後 最右邊 乙個 號及左邊的所有字元 即刪除 結果是 123.htmecho 表示從右邊開始,...