匹配0或多个字元匹配任意单一字元.PDF

匹配0或多个字元匹配任意单一字元.PDF

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档