那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

BASH shell腳本篇—字符串處理

冬至子 ? 來源:CSDN ? 作者:谷公子 ? 2023-10-16 11:25 ? 次閱讀

Bash字符串也是一種數據類型,它用于表示文本而不是數字,它是一組可能還包含數字的字符的組合。

如果數字想要表示為字符串,那么需要程序員用引號將數字包起來,以便Bash將數據視為字符串。

BASH對字符串的操作有很多方式,以下記錄了其中一些常用的用法。

1.字符串基本操作

字符串比較的命令有:

# 等于運算符:用于檢查兩個字符串是否相等
語法:Operand1 = Operand2
# 不等于運算符:用于檢查兩個字符串不相等
語法:Operand1 != Operand2
# 小于運算符:是一個條件運算符,用于檢查string1是否小于string2
語法:Operand1   Operand2
# 大于運算符:用于檢查string1是否大于string2
語法:Operand1  > Operand2
# 檢查字符串長度是否大于零
語法:[ -n Operand ]
# 檢查字符串長度是否等于零
語法:[ -z Operand ]

2. 字符串長度計算

字符串中的字符總數表示字符串的長度。我們有時需要判斷字符串的長度才能執行特定任務。在Bash腳本中,可以使用以下幾種方法來獲取字符串的長度。

# 方法1
${#str}  
# 方法2
expr length "$str"  
# 方法3
expr "$str" :'.*'  
# 方法4
$str | wc -c  
# 方法5
$str | awk '{print length}'
# 注意:請注意在$str周圍使用雙引號。如果字符串中包含空格,則雙引號非常重
#       要。否則,可以忽略它。

例子如下

# The script is:
str="str len"
echo "Method1:" ${#str}
length=`expr length "$str"`
echo "Method2:" $length
length=`expr "$str" : '.*'`
echo "Method3:" $length
length=`echo -n $str | wc -c`
echo "Method4:" $length
length=`echo -n $str | awk '{print length}'`
echo "Method5:" $length
 
# The result is:
Method1: 7
Method2: 7
Method3: 7
Method4: 7
Method5: 7

3. 拆分字符串

有時候需要根據分隔符來拆分字符串數據,bash沒有直接的拆解字符串內置函數,但可以使用定界符在bash腳本中拆分字符串數據。分隔符可以是單個字符,也可以是包含多個字符的字符串。

我們可以使用**IFS變量來拆分,**IFS是一個特殊的內部變量,用于將字符串拆分為單詞。**IFS變量稱為“內部字段分隔符”,它確定Bash如何識別邊界。**IFS用于分配分隔字符串的特定定界符[IFS ='']。空格是$IFS的默認值。

但是,也可以使用t,n,-等值作為分隔符。分配定界符后,可以通過兩個選項讀取字符串:-r和-a。即,read -ra ARR <<< "str"。在這里,選項-r用于定義反斜杠(),它是字符而不是轉義字符。-a選項用于定義將單詞(用IFS分隔)分配給從零開始的數組順序索引。然后,應用bash for循環來訪問列表,這些列表被拆分為一個數組。

例子如下:

# The script is:
str="gabc,23ab,45,abc789abcend, jj kk"
IFS="," #setting "," as delimiter
read -ra array < "$str" #reading str as an array as tokens separated by IFS
declare -p array # print array content
 
# The result is:
declare -a array='([0]="gabc" [1]="23ab" [2]="45" [3]="abc789abcend" [4]=" jj kk")'

拆分字符串還有其它方式,這只是其中一種。

4. 提取子字符串

子字符串是字符串中的字符序列,Bash提供了一個從字符串提取信息的選項,可以使用多種方法提取數字或給定的字符串。字符串提取的語法為:

${variable:offset:length}
# 其中:
# - variable是包含字符串的變量名稱
# - offset用于指定從何處開始提取字符串的位置,也可以是負的,反向提取
# - length用于指定從偏移量開始執行的字符范圍
# 分配長度是可選的。如果未提供length,則子字符串的結尾將是字符串的結尾

例子如下:

# The script is:
str="welcome to the world"
echo ${str:0:10}
echo ${str:(-9)}
 
# The result is:
welcome to
the world

5. 連接字符串

將兩個或多個字符串添加或連接在一起,這稱為字符串連接。bash中字符串連接的格式為:

# 方法1:
str3="$str1$str2"
# 此命令將串聯str1和str2變量的值,并將其存儲在第三個變量str3中
 
# 方法2:
newstr="${str} newstr"
# 此命令將字符串變量的值與其它字符串拼接在一起
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    585

    瀏覽量

    20603
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23447
  • Bash
    +關注

    關注

    0

    文章

    57

    瀏覽量

    10207
收藏 人收藏

    評論

    相關推薦

    bash腳本中檢查子字符串的方法

    我們在寫 bash 腳本的時候,假如有一個字符串,我們想檢查其中是否包含另一個子字符串,那這個時候需要怎樣做呢?
    發表于 11-24 15:25 ?1647次閱讀
    <b class='flag-5'>bash</b><b class='flag-5'>腳本</b>中檢查子<b class='flag-5'>字符串</b>的方法

    如何在bash中分割字符串

    假設我們有一個由逗號或者下劃線隔開的多個單詞組成的字符串,需要拆分這個字符串提取各個單詞。
    發表于 12-07 17:10 ?3752次閱讀

    C++字符串string

    string是C++編程語言中的字符串。在C++中字符串處理可以使用c語言字符串形式char *,也可以使用string類格式。
    的頭像 發表于 07-10 00:26 ?1387次閱讀
    C++<b class='flag-5'>字符串</b>string

    Linux Shell系列教程之Shell字符串用法

    Shell字符串用法Shell中的字符串可以用引號包起來,也可以不用引號。用引號的話可以用雙引號,也可以用單引號。其單雙引號的區別跟PHP相類似。接下來給大家介紹下
    發表于 08-29 16:01

    字符串的表示

    字符串的表示  隨著計算機在文字處理與信息管理中的廣泛應用, 字符串已成為最常用的數據類型之一, 許多計算機中都提供字符串操作功能, 一些計算機還給出讀寫字
    發表于 10-13 17:11 ?3092次閱讀
    <b class='flag-5'>字符串</b>的表示

    strtok拆分字符串

    就是字符格式。有些場景需要使用多個處理器協同工作,比如單片機+openmv,它們之間需要通信,可以采用字符格式的編碼方式。操作字符串,無非是兩件事兒:生成
    發表于 01-13 15:46 ?8次下載
    strtok拆分<b class='flag-5'>字符串</b>

    C語言-字符串處理

    字符串在C語言里使用非常多,因為很多數據處理都是文本,也就是字符串,特別是設備交互、web網頁交互返回的幾乎都是文本數據。 這篇文章就介紹字符串定義、和基本
    的頭像 發表于 08-14 10:05 ?1802次閱讀

    平化字符串處理方法簡介

    這里介紹一組有用的字符串處理方法,即平化至字符串和從字符串還原。
    的頭像 發表于 09-26 10:20 ?2324次閱讀

    介紹Shell判斷字符串包含關系的幾種方法

    bash 腳本中,有不止一種檢查子字符串的方法,我們今天介紹一些簡單的例子,然后在分享一個常用的 bash 腳本
    的頭像 發表于 05-12 15:58 ?2265次閱讀

    BASH shell腳本篇—條件命令

    這篇文章介紹下BASH shell中的條件相關的命令,包括:if, case, while, until, for, break, continue。
    的頭像 發表于 10-11 15:21 ?681次閱讀
    <b class='flag-5'>BASH</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本篇</b>—條件命令

    BASH shell腳本篇—函數

    函數是代碼重用的最重要方式。Bash函數可以定義為一組命令,在bash腳本中多次調用。
    的頭像 發表于 10-20 16:31 ?1183次閱讀

    BASH shell腳本篇—文件處理介紹

    Bash Shell腳本中,可以使用多種方法來對文件進行操作,包括讀取文件或寫入文件。
    的頭像 發表于 10-23 16:51 ?691次閱讀

    字符串如何轉換成日期型

    隨著計算機技術的不斷發展,我們經常遇到需要處理日期的情況。在編程中,字符串是最常見的日期輸入格式,在許多情況下,我們需要將字符串轉換為日期類型以便進行日期計算和比較。本篇文章將詳細介紹
    的頭像 發表于 11-17 16:27 ?1w次閱讀

    labview中怎么對字符串中的進行實時處理

    LabVIEW是一種用于開發控制、測試和測量系統的可視化編程環境,它提供了許多處理字符串的功能。在LabVIEW中,可以使用不同的函數和工具來實時處理字符串。下面我將詳細介紹一些常見的
    的頭像 發表于 12-26 14:12 ?2016次閱讀

    字符串在編程中的應用實例

    字符串在編程中有著廣泛的應用,它們被用于表示文本數據、處理用戶輸入、構建動態內容等。以下是一些字符串在編程中的應用實例: 1. 用戶輸入與輸出 用戶輸入 :程序通常需要從用戶那里獲取輸入,這些輸入通
    的頭像 發表于 01-07 15:33 ?150次閱讀
    重庆百家乐的玩法技巧和规则| 百家乐官网有没有破解之法| 太阳城的故事| 赌神网百家乐官网2| 足球赌博网站| 尊龙百家乐娱乐场开户注册 | 网上博彩网址| 百家乐庄闲路| 乐天堂百家乐官网娱乐网| 顶级赌场官方网站| 滨海湾百家乐娱乐城| 366百家乐官网娱乐城| 百家乐棋牌游戏开发| 博彩百家乐官网的玩法技巧和规则 | 波音百家乐自动投注| 缅甸百家乐官网网络赌博解谜| 大发888娱乐场 b8| 百家乐有无规律可循| 大发888怎么开户| 百家乐是骗人的么| 百家乐官网最稳妥的打法| 15人百家乐桌| 百家乐官网麻将牌| 百家乐官网电脑上怎么赌| 大发888娱乐场下载iypuqrd| 百家乐视频软件下载| 百家乐官网赌场技巧网| 百家乐官网一柱擎天| 优博网站| 百利宫百家乐的玩法技巧和规则| 新锦江百家乐官网的玩法技巧和规则 | 真人百家乐官网是啥游戏| 大发888娱乐场下载 制度| 百家乐赌场筹码| 联合百家乐官网的玩法技巧和规则| 百家乐官网注册| 太阳城百家乐公司| 乐中百家乐官网的玩法技巧和规则| 百家乐官网赢的技巧| 盛大娱乐城现金网| 百家乐龙虎|