自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

我們?cè)谇懊娴奈恼轮薪榻B過 ??bash 中的變量???,了解到在 bash 中是沒有比如字符串、整型等數(shù)據(jù)類型的,所有的都統(tǒng)稱為變量。

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

獲取字符串長度

字符串其實(shí)是字符的序列(數(shù)組),我們先創(chuàng)建一個(gè)名為 distro 的字符串,內(nèi)容初始化為 Ubuntu。

distro="Ubuntu"

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

$echo ${#distro}6

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

連接兩個(gè)字符串

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

str1="hand"str2="book"

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

str3=$str1$str2

圖片

查找子字符串

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

str="Bash is Cool"

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

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

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

提取子字符串

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

我們首先創(chuàng)建一個(gè)名為 foss 的字符串變量:

foss="Fedora is a free operating system"

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

$echo ${foss:0:6}Fedora

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

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

$echo ${foss:12}free operating system

字符串替換

可以將某一字符串中的子字符串,替換為另一個(gè)字符串。比如,我們可以將上面例子中 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 命令打印結(jié)果,原始字符串是不會(huì)被改變的。

刪除子字符串

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

fact="Sun is a big star"

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

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

另外一個(gè)例子,我們創(chuàng)建一個(gè)新字符串 cell:

cell="112-358-1321"

假設(shè)我們這次的目的是要?jiǎng)h除 cell 中所有的破折號(hào);那下面的語句只會(huì)刪除 cell 中的第一個(gè)破折號(hào):

$echo ${cell/-}112358-1321

要?jiǎng)h除 cell 中所有的破折號(hào),需要使用雙斜杠,如下所示:

$echo ${cell//-}1123581321

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

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

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

大小寫轉(zhuǎn)換

可以對(duì)字符串中的字母進(jìn)行大小寫轉(zhuǎn)換。我們先創(chuàng)建兩個(gè)字符串,分別命名為 legend 和 actor:?

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

首先演示將 legend 中的字母全部轉(zhuǎn)為大寫:

$echo ${legend^^}JOHN NASH

然后我們將 actor 中的字母轉(zhuǎn)為小寫:?

$echo ${actor,,}julia roberts

或者將 legend 中的第一個(gè)字母轉(zhuǎn)為大寫:

$echo ${legend^}John nash

或者,將 actor 中的第一個(gè)字母轉(zhuǎn)為小寫:

$echo ${actor,}jULIA ROBERTS

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

$echo ${legend^^[jn]}JohN Nash
責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2022-12-13 12:55:15

Bash循環(huán)

2022-12-09 07:58:52

Bash條件語句

2022-11-30 07:47:00

Bash腳本

2022-12-02 14:30:24

Bash腳本數(shù)組

2022-12-01 08:10:49

Bash腳本參數(shù)

2022-12-14 10:08:00

BashLinux

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字符串問題

2017-12-11 13:50:17

LinuxBash子字符串

2023-01-09 09:52:06

Bash字符串

2022-05-10 09:47:10

Bash字符串Linux

2019-06-11 09:52:18

IPv6IPv4程序

2011-06-17 15:19:28

Qt

2023-08-22 21:42:03

Bash函數(shù)

2020-06-04 08:10:30

Python字符串開發(fā)

2022-12-06 08:27:50

Bash腳本字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)