shell字串擷取

2022-05-10 12:22:19 字數 1312 閱讀 8108

在編寫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 表示從右邊開始,...