成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Bash 初學者系列 6:bash 中的字符串操作

系統 Linux
今天我們就來介紹一下字符串操作函數,如何獲取字符串長度、連接字符串、提取子字符串、替換子字符串等。

我們在前面的文章中介紹過 ??bash 中的變量???,了解到在 bash 中是沒有比如字符串、整型等數據類型的,所有的都統稱為變量。

但是,這并不意味著在 bash 中沒有字符串操作函數。今天我們就來介紹一下字符串操作函數,如何獲取字符串長度、連接字符串、提取子字符串、替換子字符串等。

獲取字符串長度

字符串其實是字符的序列(數組),我們先創建一個名為 distro 的字符串,內容初始化為 Ubuntu。

distro="Ubuntu"

要獲取字符串的長度,只需在變量名錢添加 # 即可,如下所示:?

$echo ${#distro}6

上述代碼中,echo 命令用于打印值,{#string} 給出字符串的長度。

連接兩個字符串

可以將一個字符串拼接到另一個字符串的末尾,為了演示,我們首先創建兩個字符串str1和str2,如下所示:?

str1="hand"str2="book"

下面我們拼接這兩個字符串,得到一個新字符串,賦值給變量 str3,如下所示:

str3=$str1$str2

圖片

查找子字符串

可以查找某個字符或者字符串在另一個字符串中的位置(索引)。我們首先創建一個名為 str 的字符串,如下所示:

str="Bash is Cool"

我們可以使用 expr 命令來獲取字符串 Cool 在 str 中的位置(索引):?

$"Cool"$"$str" "$word"9

上述例子中,結果 9 就是單詞 "Cool" 在 str 中的索引位置。

提取子字符串

我們可以從一個字符串中提取子字符串,比如獲取其中的一個字符、一個或幾個單詞。

我們首先創建一個名為 foss 的字符串變量:

foss="Fedora is a free operating system"

假設我們要提取 foss 中的第一個單詞 "Fedora",那么需要提供單詞在字符串中的起始位置(索引)以及要提取的字符數。所以,我們需要提供的參數為:0 作為起始位置,提取 6 個字符,如下代碼所示:?

$echo ${foss:0:6}Fedora

注意,字符串中的第一個位置是零,就像??bash中的數組???一樣。也可以只指定子字符串的起始位置,而忽略字符數。在這種情況下,將提取從字符串的起始位置到結尾的所有內容。

例如,從foss字符串中提取子字符串“free operating system”, 我們只需要指定起始位置12:?

$echo ${foss:12}free operating system

字符串替換

可以將某一字符串中的子字符串,替換為另一個字符串。比如,我們可以將上面例子中 foss 字符串中的 “Fedoras”替換為“Ubuntu”,如下所示:?

$echo ${foss/Fedora/Ubuntu}Ubuntu is a free operating system

再比如,將子字符串“free”替換為“popular”:

$echo ${foss/free/popular}Fedora is a popular operating system

上面例子中,我們使用 echo 命令打印結果,原始字符串是不會被改變的。

刪除子字符串

也可以刪除子字符串。為了演示,我們首先創建一個名為 fact 的字符串,如下所示:

fact="Sun is a big star"

我們從 fact 字符串中刪除字符串“big”:?

$echo ${fact/big}Sun is a star

另外一個例子,我們創建一個新字符串 cell:

cell="112-358-1321"

假設我們這次的目的是要刪除 cell 中所有的破折號;那下面的語句只會刪除 cell 中的第一個破折號:

$echo ${cell/-}112358-1321

要刪除 cell 中所有的破折號,需要使用雙斜杠,如下所示:

$echo ${cell//-}1123581321

這里需要注意,跟上面的例子一樣,我們是使用 echo 命令打印的結果(結果也可以賦值給另外一個變量),因此原字符串(變量)cell 是沒有被改變的。

如果要修改原字符串,只需要將結果在分配回字符串即可:?

$echo $cell112-358-1321$${cell//-}$echo $cell1123581321

大小寫轉換

可以對字符串中的字母進行大小寫轉換。我們先創建兩個字符串,分別命名為 legend 和 actor:?

legend="john nash"actor="JULIA ROBERTS"

首先演示將 legend 中的字母全部轉為大寫:

$echo ${legend^^}JOHN NASH

然后我們將 actor 中的字母轉為小寫:?

$echo ${actor,,}julia roberts

或者將 legend 中的第一個字母轉為大寫:

$echo ${legend^}John nash

或者,將 actor 中的第一個字母轉為小寫:

$echo ${actor,}jULIA ROBERTS

此外,還可以將字符串中的某些字符改為大寫或小寫。比如,我們可以將 legend 中的字母 j 和 n 轉為大寫:?

$echo ${legend^^[jn]}JohN Nash
責任編輯:龐桂玉 來源: TIAP
相關推薦

2022-12-13 12:55:15

Bash循環

2022-12-09 07:58:52

Bash條件語句

2022-11-30 07:47:00

Bash腳本

2022-12-14 10:08:00

BashLinux

2022-12-02 14:30:24

Bash腳本數組

2022-12-01 08:10:49

Bash腳本參數

2022-12-16 09:01:24

2022-12-07 07:43:21

2023-07-30 09:50:51

Bash字符串

2022-11-28 08:01:47

BashLinuxshell 腳本

2022-11-25 07:53:26

bash腳本字符串

2015-03-23 17:18:18

Java字符串問題

2019-06-11 09:52:18

IPv6IPv4程序

2017-12-11 13:50:17

LinuxBash子字符串

2023-01-09 09:52:06

Bash字符串

2022-05-10 09:47:10

Bash字符串Linux

2011-06-17 15:19:28

Qt

2023-08-22 21:42:03

Bash函數

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色婷婷精品国产一区二区三区 | www国产亚洲精品久久网站 | 欧美视频在线看 | 亚洲精品一区在线观看 | 久久大| h肉视频| 久久婷婷香蕉热狠狠综合 | 成人深夜福利 | 国产成人99久久亚洲综合精品 | 日本黄视频在线观看 | 91夜色在线观看 | 在线观看国产视频 | 国产精品污www在线观看 | 精品国产伦一区二区三区观看说明 | 日韩精品一区二区三区在线播放 | 欧美激情99 | 狠狠的干| 亚洲精品国产a久久久久久 午夜影院网站 | 国产精品99视频 | 日本在线免费看最新的电影 | 伊人狠狠干 | 一区二区高清在线观看 | 国产精品久久久久婷婷二区次 | 欧美a级网站 | 国产伦精品一区二区三区照片91 | 亚洲国产一区视频 | 国产精品久久久久久吹潮 | av一级| 亚州精品成人 | 久久狠狠 | 日韩精品一区在线 | 一区二区三区国产 | 国产91av视频在线观看 | 国产黑丝av| 二区高清| 一区二区日本 | 日韩高清一区 | 涩涩片影院 | 美女视频一区二区三区 | 欧美精品在线播放 | 国产精品久久国产精品99 |