日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍

發布時間:2023/12/20 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通配

方括號最簡單的用法就是通配。你可能在知道“Globbing”這個概念之前就已經通過通配來匹配內容了,列出具有相同特征的多個文件就是一個很常見的場景,例如列出所有 JPEG 文件:

ls *.jpg

使用通配符wildcard來得到符合某個模式的所有內容,這個過程就叫通配。

在上面的例子當中,星號(*)就代表“0 個或多個字符”。除此以外,還有代表“有且僅有一個字符”的問號(?)。因此

ls d*k*

可以列出 darkly 和 ducky,而且 dark 和 duck 也是可以被列出的,因為 * 可以匹配 0 個字符。而

ls d*k?

則只能列出 ducky,不會列出 darkly、dark 和 duck。

方括號也可以用于通配。為了便于演示,可以創建一個用于測試的目錄,并在這個目錄下創建文件:

touch file0{0..9}{0..9}

執行上面這個命令之后,就會創建 file000、file001、……、file099 這 100 個文件。

如果要列出這些文件當中第二位數字是 7 或 8 的文件,可以執行:

ls file0[78]?

如果要列出 file022、file027、file028、file052、file057、file058、file092、file097、file098,可以執行:

ls file0[259][278]

當然,不僅僅是 ls,很多其它的命令行工具都可以使用方括號來進行通配操作。但在刪除文件、移動文件、復制文件的過程中使用通配,你需要有一點橫向思維。

例如將 file010 到 file029 這 30 個文件復制成 archive010 到 archive029 這 30 個副本,不可以這樣執行:

cp file0[12]? archive0[12]?

因為通配只能針對已有的文件,而 archive 開頭的文件并不存在,不能進行通配。

而這條命令

cp file0[12]? archive0[1..2][0..9]

也同樣不行,因為 cp?并不允許將多個文件復制到多個文件。在復制多個文件的情況下,只能將多個文件復制到一個指定的目錄下:

mkdir archive

cp file0[12]? archive

這條命令是可以正常運行的,但它只會把這 30 個文件以同樣的名稱復制到 archive/ 目錄下,而這并不是我們想要的效果。

如果你閱讀過我關于花括號的文章,你大概會記得可以使用 % 來截掉字符串的末尾部分,而使用 # 則可以截掉字符串的開頭部分。

例如:

myvar="Hello World"

echo Goodbye Cruel ${myvar#Hello}

就會輸出 Goodbye Cruel World,因為 #Hello 將 myvar 變量中開頭的 Hello 去掉了。

在通配的過程中,也可以使用這一個技巧。

for i in file0[12]?;\

do\

cp $i archive${i#file};\

done

上面的第一行命令告訴 Bash 需要對所有 file01 開頭或者 file02 開頭,且后面只跟一個任意字符的文件進行操作,第二行的 do 和第四行的 done 代表需要對這些文件都執行這一塊中的命令。

第三行就是實際的復制操作了,這里使用了兩次 $i 變量:第一次在 cp 命令中直接作為源文件的文件名使用,第二次則是截掉文件名開頭的 file 部分,然后在開頭補上一個 archive,也就是這樣:

"archive" + "file019" - "file" = "archive019"

最終整個 cp 命令展開為:

cp file019 archive019

最后,順帶說明一下反斜杠 \ 的作用是將一條長命令拆分成多行,這樣可以方便閱讀。

在下一節,我們會了解方括號的更多用法,敬請關注。

本文由 LCTT 原創編譯,Linux中國 榮譽推出

總結

以上是生活随笔為你收集整理的linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。