萬用字元、元字元、轉義符
一、Linux shell萬用字元(wildcard)
萬用字元是由shell處理的(不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹), 它只會出現在命令的“引數”裡(它不用在命令名稱裡,也不用在操作符上)。當shell在“引數”中遇到了萬用字元時,shell會將其當作路徑或檔名去在磁碟上搜尋可能的匹配:若符合要求的匹配存在,則進行替換(路徑擴充套件);否則就將該萬用字元作為一個普通字元傳遞給“命令”,然後再由命令進行處理。
總之,萬用字元實際上就是一種shell實現的路徑擴充套件功能。在萬用字元被處理後, shell會先完成該命令的重組,然後再繼續處理重組後的命令,直至執行該命令。
例如以下命令:
[[email protected] wildcard]# ls
a.htm b.htm
[[email protected] wildcard]# ls *.htm
a.htm b.htm
[[email protected] wildcard]# ls d*.htm
ls: d*.htm: 沒有那個檔案或目錄
分析如下:
第2個命令中,對於引數*.htm,shell在當前目錄下能搜尋到相匹配檔案,會換成a.htm b.htm。實際執行的是ls a.htm b.htm命令。
第3個命令,對於引數d*.htm, shell在當前目錄找不到相匹配的檔案,則直接將d*.htm作為ls引數,實際執行的是ls d*.htm。由於找不到該檔案,所以會出現:沒有那個檔案或目錄。
瞭解了shell萬用字元,我們現在看下,shell常見萬用字元有那一些了。
shell萬用字元
字元 | 含義 | 例項 |
---|---|---|
* | 匹配0或多個字元 | a*b a與b之間可以有任意長度的任意字元, 也可以一個也沒有, 如aabcb, a01b, ab等 |
? | 匹配任意一個字元 | a?b a與b之間有且只有一個字元, 可以是任意字元, 如aab, adb, a0b等 |
[list] | 匹配list中的任意單一字元 | a[xyz]b a與b之間有且只有一個字元, 且只能是x或y或z, 如: axb, ayb, azb。 |
[!list] | 匹配除list中的任意單一字元 | a[!0-9]b a與b之間有且只有一個字元, 但不能是數字, 如axb, aab, a-b等 |
[c1-c2] | 匹配c1-c2中的任意單一字元 | a[0-9]b a與b之間有且只有一個字元,該字元是0-9之間的數字,如a0b, a1b,... ,a9b。 |
{string1,string2,...} | 匹配 sring1 或 string2 (或更多)其一字串 | a{abc,xyz,123}b a與b之間只能是abc或xyz或123這三個字串之一。 |
需要說明的是:萬用字元看起來有點象正則表示式語句,但是它與正則表示式不同的,不能相互混淆。把萬用字元理解為shell特殊代號字元就可。
二、shell元字元
shell除了有萬用字元之外,由shell負責預先先解析後,將處理結果傳給命令列之外,shell還有一系列自己的其他特殊字元。
shell元字元
字元 | 說明 |
---|---|
= | 變數名=值,為變數賦值。注意=左右緊跟變數名和值,中間不要有空格 |
$ | 變數值替換,$變數名替換為shell變數的值;為避免在文字連線時混淆,請使用${變數名};$0...$9 代表shell檔案的引數。 |
> | prog > file 將標準輸出重定向到檔案。 |
>> | prog >> file 將標準輸出追加到檔案。 |
< | prog < file 從檔案file中獲取標準輸入 |
| | 管道命令,例:p1 | p2 將p1的標準輸出作為p2的標準輸入 |
& | 後臺執行命令,最大好處是無需等待命令執行結束,就可以在同一命令列下繼續輸入命令 |
() | 在子shell中執行命令 |
{} | 在當前shell中執行命令,或用在變數替換的界定範圍(例如上面的${變數名}用法)。 |
; | 命令結束符。例如p1;p2表示先執行p1,再執行p2 |
&& | 前一個命令執行成功後,才繼續執行下一個命令。例:p1 && p2 ;若p1執行成功後,才執行p2,反之,不執行p2; |
|| | 前一個命令執行失敗後,才繼續執行下一個命令。例:p1 || p2 ;若p1執行成功後,不執行p2,反之,才執行p2; |
! | 執行歷史記錄中的命令 |
~ | home目錄 |
三、shell轉義符
有時候,我們想讓萬用字元,或者元字元變成普通字元。那麼這裡我們就需要用到轉義符了。 shell提供轉義符有三種。
shell轉義字元
字元 | 說明 |
---|---|
'' | 單引號,硬轉義,其內部所有的shell元字元、萬用字元都會被關掉。注意,硬轉義中不允許出現’(單引號)。 |
"" | 雙引號,軟轉義,其內部只允許出現特定的shell元字元($,`,\):$用於變數值替換、`用於命令替換、\用於轉義單個字元 |
\ | 反斜槓,轉義,去除其後緊跟的元字元或萬用字元的特殊意義。 |
相關推薦
第二天筆記-選擇器(標籤選擇器、類選擇器、css命名規範、谷歌案例、多類名選擇器、id選擇器、萬用字元選擇器、偽類選擇器)
四、選擇器 要想將CSS樣式應用於持定的HTML元素,首先需要找到該目標元素。在CSS中,執行這一任務的樣式規則部分則成為選擇器(選擇符)。 (一)標籤選擇器(元素選擇器) 標籤選擇器是隻用於HTML標籤名作為選擇器,按標籤名分類,為頁面中某一類標籤指定統
CSS之萬用字元選擇器、複合選擇器
一、萬用字元選擇器 1、 2、 執行結果:作用於所有的標籤,所有文字顏色都變成了紅色 二、符合選擇器 1、複合選擇器就是把上面的幾個單獨的基本選擇器混合來使用 2、 ① ② 3、 4、 ② ③ 5、 ① ② 6、
sql like語句中的萬用字元:百分號、下劃線和escape
# %代表任意多個字元 select * fromuserwhere username like'%huxiao'; select * fromuserwhere username like'huxiao%'; select * fromuserwhere
Linux Shell 萬用字元、元字元、轉義符
說到shell萬用字元(wildcard),大家在使用時候會經常用到。下面是一個例項: [[email protected] ~/shell]$ ls a.txt b.txt c.old [[email protected] ~/she
萬用字元、元字元、轉義符
一、Linux shell萬用字元(wildcard) 萬用字元是由shell處理的(不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹), 它只會出現在命令的“引數”裡(它不用在命令名稱裡,也不用在操作符上)。當shell在“引數
SQL中like語句萬用字元、轉義符與括號的使用
https://blog.csdn.net/kpchen_0508/article/details/45167481 可以搜尋萬用字元字元。有兩種方法可指定平常用作萬用字元的字元: 使用 ESCAPE 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,該萬用字
bash的基本功能(重定向、管道符、萬用字元)
輸出重定向 注:linux中一切皆檔案,為方便記憶,在sh中以0,1,2分別表示這三種輸入輸出 管道符 注: 1. 可通過data;
分享知識-快樂自己:Struts2(動態方法、動態結果、萬用字元、方法內部跳轉、action跳轉、OGNL 的使用及注意事項)
這裡主要以案例演示:涵蓋以下知識點 1、動態方法呼叫:使用關鍵 符號 ! 進行操作 例如:/名稱空間 ! 方法名 2、動態結果集:就是說,通過後臺返回的結果 ${} 獲取,重定向到符合預期的頁面。 3、萬能萬用字元:*_* :第一個 * 為 類名、第二個 * 為方
day26基礎加強(泛型、萬用字元、註解、反射 註解使用)
泛型 1、具有一個或多個泛型變數的型別被稱之為泛型類 class A<T>{} 2、在建立泛型類例項時,需要為其型別變數賦值 A<String> a = new A<String>(); 如果建立例項時,不給型別變數賦值,那麼會有一個警告。 3
Linux 命令列萬用字元及轉義符的實現
我們想對一類檔案批量操作,例如批量檢視硬碟檔案屬性,那麼正常命令會是: [[email protected] ~]# ls /dev/sda [[email protected] ~]# ls /dev/sda1 [[email protected] ~]# l
單域名版、多域名版和萬用字元版SSL證書之間的區別
本博主轉載前必先親自考證,深惡痛絕百度CP之流,有問題請與我聯絡。 單域名版SSL證書 顧名思義,只保護一個域名,這些域名形如 www.yuming.com;pay.domain.net;shop.store.cn 等; 值得注意的有兩點: 1、當您位 www 字首的域名申請證書的時
泛型、上下界萬用字元
宣告:本人最近特忙,此篇部落格發得很倉促;等後面閒下來了,本人會再次深入學習並演示泛型。 泛型程式設計(Generic Programming)意味著編寫的程式碼可以被很多不同型別的物件所重用。即:將一些可以進行相同操作的類或元素等進行抽象化,為其共有的特性寫一個通用的
泛型——(3) 泛型的萬用字元、上限與下限
萬用字元: “?” 萬用字元就是當集合中的型別不確定時,可以用“?” 萬用字元來代替表示。這樣任意型別都能進入集合。 package cn.itcast.p5.generic.advance.demo; import java.util.ArrayList; impo
泛型上下界、萬用字元介紹
<? extends T>和<? super T>的英文Java的泛型中的“萬用字元(萬用字元)”和“邊界(邊界)”的概念。 <?擴充套件T>:是指 “上界萬用字元(Upper Bounds Wildcards)” <?super
Javaweb學習筆記——(二十七)——————泛型、泛型的萬用字元、反射泛型資訊、反射註解、註解
泛型 1.泛型類:具有一個或多個型別變數的類,稱之為泛型類 class A<T>{ } 2.在建立泛型例項時,需要為其型別變數賦值 A<String> a = new A<String>();
elasticsearch-wildcard、regexp萬用字元與正則表示式查詢
萬用字元與正則表示式查詢 假設將郵編作為 not_analyzed 的精確值欄位索引,所以可以為其建立索引,如下: PUT /my_index { "mappings": { "address": { "properties
Elasticsearch-字首、萬用字元、正則、模糊搜尋詳解
1.對於字首的匹配搜尋: GET /forum/article/_search { "query": { "prefix": { "articleID": { "value": "J" } }
jquery基本選擇器:id選擇器、class選擇器、標籤選擇器、萬用字元選擇器
全棧工程師開發手冊 (作者:欒鵬) jquery基本選擇器 jquery基本選擇器,包括id選擇器、class選擇器、標籤選擇器、萬用字元選擇器,同時配合選擇器的空格、逗號等語法,可以實
java基礎總結 --- 泛型 擦除、邊界、萬用字元、
* 擦除的問題 * 為什麼要擦除: 1.5版本才出現泛型 為了相容之前地程式碼 * 它使得泛化的客戶端可以用非泛化的類庫來使用。 * 以及不破壞現有類庫的情況下,將泛型融入java語言。 * 擦除使得現有的非泛型客戶端程式碼能夠在不改變的情況繼續使用,直至客戶端準
MySQL:05---DQL單表查詢(指定、多條件、between..and、like萬用字元、空值、limit、去重合並查詢)
一、查詢指定欄位 1. 查詢所有欄位 select * from 表名; 2.查詢指定欄位 select 欄位1,欄位2... from 表名; 二、條件查詢 概念:條件查詢可通過wher