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

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

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

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

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

獲取字符串長度

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

distro="Ubuntu"

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

$echo ${#distro}6

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

連接兩個字符串

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

str1="hand"str2="book"

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

str3=$str1$str2

圖片

查找子字符串

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

str="Bash is Cool"

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

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

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

提取子字符串

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

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

foss="Fedora is a free operating system"

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

$echo ${foss:0:6}Fedora

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

例如,從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 命令打印結(jié)果,原始字符串是不會被改變的。

刪除子字符串

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

fact="Sun is a big star"

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

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

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

cell="112-358-1321"

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

$echo ${cell/-}112358-1321

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

$echo ${cell//-}1123581321

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

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

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

大小寫轉(zhuǎn)換

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

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

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

$echo ${legend^^}JOHN NASH

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

$echo ${actor,,}julia roberts

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

$echo ${legend^}John nash

或者,將 actor 中的第一個字母轉(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-14 10:08:00

BashLinux

2022-12-02 14:30:24

Bash腳本數(shù)組

2022-12-01 08:10:49

Bash腳本參數(shù)

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

2022-05-10 09:47:10

Bash字符串Linux

2017-12-11 13:50:17

LinuxBash子字符串

2019-06-11 09:52:18

IPv6IPv4程序

2023-01-09 09:52:06

Bash字符串

2011-06-17 15:19:28

Qt

2023-08-22 21:42:03

Bash函數(shù)

2020-06-04 08:10:30

Python字符串開發(fā)

2009-11-13 15:46:25

Java多線程
點贊
收藏

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

主站蜘蛛池模板: 理论片免费在线观看 | 麻豆久久久9性大片 | 二区在线视频 | 爱爱小视频 | 91高清视频在线观看 | 色悠悠久| 亚洲精品456 | 麻豆精品国产91久久久久久 | 国产精品免费一区二区三区四区 | 一级片免费视频 | 九九热在线免费视频 | 一级做a| 亚洲成人久久久 | 国产精品视频久久久久久 | 国产一区二区三区在线 | 一区二区三区在线电影 | 久久久久久免费精品一区二区三区 | 一区二区三区av | 日韩成人精品一区 | 91精品国产高清久久久久久久久 | 欧美日韩在线电影 | 欧美 日韩 国产 成人 | 国产精品自产拍 | 热久久免费视频 | 亚洲欧美日韩电影 | 亚洲免费人成在线视频观看 | 久久综合九色综合欧美狠狠 | 91久久精品国产91久久 | 日韩三极| 黄色av网站在线观看 | 粉嫩av久久一区二区三区 | 狠狠插狠狠操 | 久久久久久久综合色一本 | 超碰97免费在线 | 日韩www | 青青草社区| 999久久久国产精品 欧美成人h版在线观看 | 在线视频一区二区 | 韩日中文字幕 | 国产一区二区精 | 亚洲一区二区在线播放 |