- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
匹配0或多个字元匹配任意单一字元
Linux 學習談(3) --- 文字遊戲
在 Linux 系統里面執行命令,終究而言就是對資料(data)的處理,而最為常見的就是對文字(text)的
處理。因此我們在 Linux 里面會發現有很多命令都是專門用來處理文字的。這裡我們為大家介紹 Linux
中與文字相關的命令及技巧。
3.1) 通配字元(wildcard)
基本上 wildcard 是屬於 command line 的處理工序,作用於 argument 裡的 path 之上,不用在
command_name 也不用在 option 上。而且, 若 argument 不是 path 的話,那也與 wildcard 無關。
換句更為精確的定義來講, wildcard 是一種命令行的路逕擴展(path expansion)功能。提到這個擴展,
那就不能忘記 command line 的重組特性了, 這與變數替換 (variable substitution)及命令替換
(command substitution)的重組特性是一樣的。也就是在 wildcard 進行擴展後,命令行會先完成重組
才會處理。
了解 wildcard 的擴展與重組特性後,接下來讓我們認識常見的 wildcard 吧:
* : 匹配 0 或多個字元
? : 匹配任意單一字元
[list] : 匹配 list 中的任意單一字元(註一)
[!list] : 匹配不在 list 中的任意單一字元
{string1,string2,...} : 匹配 sring1 或 string2 (或更多)其一字串
(註: list 可以為指定的個別字元,如 abcd ;也可以為一段 ASCII 字元的起止範圍,如 : a-d
)
例 :
a*b
a 與 b 之間可以有任意長度的字元,也可以一個也沒有如:aabcb、axyzb、a012b、ab,
等
a?b
a 與 b 之間必須也只能有一個字元,可以是任意字元,如:aab、abb、acb、a0b, 等
a[xyz]b
a 與 b 之間必須也只能有一個字元,但只能是 x 或 y 或 z,如:axb、ayb、azb 這三
個之一
a[!0-9]b
a 與 b 之間必須也只能有一個字元, 但不能是阿拉伯數字, 如:axb, aab, a-b 等 .
a{abc,xyz,123}b
a 與 b 之間只能是 abc 或 xyz 或 123 這三個字串之一,如:aabcb、axyzb、a123b
這三個之一
注意 :
* [! ] 中的 ! 只有放在第一順位時才有排除之功。舉例說: [!a]* 表示當前目錄下所有不以 a
開首的路逕名稱; /tmp/[a\!]* 表示 /tmp 目錄下以 a 或 ! 開首的路逕名稱。(思考:為何 ! 前面要
加 \ 呢?)
* [ - ] 中的 - 左右兩邊均有字元時才表示一段範圍,否則僅作 -(減號)字元來處理。舉例說 :
/tmp/*[-z]/[a-zA-Z]* 表示 /tmp 目錄下所有以 z 或 - 結尾的子目錄下以英文字母 (不分大小寫 )開
首的路逕名稱。
* 以 * 或 ? 開首的 wildcard 不能匹配隱藏文件(即以 . 開首的文件)。舉例說:*.txt 並
不能匹配 .txt 但可匹配 1.txt 這樣的路逕名稱。
基本上,要掌握 wildcard 並不難,只要多練習、勤於思考就能熟加運用。再次提醒:別忘了擴充+重
組這個重要特性,而且只作用在 argument 的 path 上。比方說,假設當前目錄下有 a.txt b.txt
c.txt 1.txt 2.txt 3.txt 這幾份文件。當我們在命令行中下達 ls -l [0-9].txt 這個命令時會因
為 wildcard 處於 argument 的位置上,於是根據其匹配的路逕擴展為 1.txt 2.txt 3.txt,再重組
出 ls -l 1.txt 2.txt 3.txt 這樣的命令行。因此,此時在命令行上敲 ls -l [0-9].txt 與 ls
-l 1.txt 2.txt 3.txt 都是同樣的結果。
關於 command line 的重組特性真的需要我們好好的加以理解,如此便能抽絲剝襺一層層地將整個
comman
您可能关注的文档
最近下载
- 内蒙古版综合实践活动五年级下册第三课 今天我是小交警 课件.ppt
- 道德与法治四年级上册第一单元 与班级共成长 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
- 公安寄递物流业治安管理.pptx VIP
- 2024年苏科版九年级数学下册第六章《相似图形》课件.ppt VIP
- 故事——小羊过桥.ppt
- 自动售货机plc控制系统设计.doc
- 股先知周线指标公式通达信版(1).docx VIP
- 选择结构程序设计-C语言程序试验报告.pdf
- 以廉洁风险防控为核心的“三不腐”机制应用-来源:现代企业文化(第2020010期)-中国工人出版社.pdf VIP
- 疯狂星期二_13610597.pdf
文档评论(0)