⑴ .shell命令的通配符有哪些( )
D
* 匹配 0 或多個字元
? 匹配任意單一字元
[list] 匹配 list 中的任意單一字元
[!list] 匹配不在 list 中的任意單一字元
例如:
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。
⑵ SHELL腳本中的通配符問題
兩個意思是不一樣的,在命令行的意思是代表0~n個任意字元。在shell腳本里代表重復0-n次前一個字元。就是ls abc或者ls abcc或者ls abccc
⑶ shell if 條件語句可以帶通配符*嗎
可以
cnbubble@~/test:$cattp.sh
#!/bin/bash
forfin`ls~/test`
do
if[["$f"==sd*]]
then
echo$f
fi
done
cnbubble@~/test:$./tp.sh
sd.f
sd.in
sd.sh
例子如上,腳本中if判斷用了通配符*,列印出以sd開頭的文件
⑷ shell命令行下的通配符*有什麼用
shell下的通配符,一般來說主要是用來匹配文件用的
常用的有三個,或者應該只有三個吧,記得不是很清楚了
*,?,[]
其中*代表任意多個字元,如你cd /後,這時,*就代表/目錄下所有的文件了,echo *你會看到結果,但不包括所有隱藏的文件,所有隱藏的文件是.*,這里的點號僅僅代表點號而已。當然,你想得到兩個o連在一起的文件怎麼做了?很簡單,就是*oo*,你用echo命令,於是得到了root與boot……
?則是代表單個字元,如echo ???,文件名是三個字元長的都出來的。echo ?i?,於是bin與lib就出來了……
[]則是用來匹配方括弧里的任意一個,比如[abc]就匹配a,b,或者c中的任意一個。結合*號,如echo [abc]*,則是顯示所有以a或b或c開頭的文件。配合短橫線的話,可以匹配一個范圍。如要匹配以小寫字母開頭的文件怎麼寫了?你不要把所有的小寫字母寫出來,[a-z]*這樣即可,大寫字母當然就是[A-Z]了,數字就是[0-9]了,當然也可以合起來寫[A-Za-z0-9],不用解釋了吧。要記住的是,只是匹配一個而已。再來一個例子:for i in * ;doecho $i;done。答案嘛,自己試下就知道了。開個shell,隨便練下,很容易掌握的。
啰嗦了這么多,希望對您有用。有一點需要注意,就是不要把通配符與正則元字元混淆了……
⑸ unix shell命令行通配符拓展問題,如何避免命令行的通配符拓展,求助大俠
在腳本里的第2行,加上
set -o noglob
然後用 ./escape 'aa.*' 的方法來執行,即可。
⑹ shell中的通配符以及特殊符
shell中的通配符以及特殊符1.通配符在
bash的操作環境中還有一個非常有用的功能,那就是通配符
(wildcard)!我們利用
bash
處理數據就更方便了!底下我們列出一些常用的通配符喔。例子:[html](1)找出
/etc/
底下以
cron
為開頭的檔名:#
ll
-d
/etc/cron*
<==加上
-d
是為了僅顯示目錄而已
(2)找出
/etc/
底下文件名『剛好是五個字母』的文件名:#
ll
-d
/etc/?????
<==由於?
一定有一個,所以五個
?
就對了
(3)找出
/etc/
底下文件名所有數字的文件名:#
ll
-d
/etc/*[0-9]*
<==記得中括弧左右兩邊均需
*
(4)找出
/etc/
底下,檔名開頭非為小寫字母的文件名:#
ll
-d
/etc/[^a-z]*
<==注意中括弧左邊沒有
*
<span
style=font-size:18px;><strong></strong></span>
2.特殊符號
通配符之外,bash
環境中特殊符號有哪些呢?底下我們先匯整一下:
⑺ shell 腳本通配符無效
我這里試下來bzip2是支持通配符的。
/var/shark*20150324*.log
你本機是否存在符合這種格式的文件呢? 路徑是否正確?
⑻ 正則表達式跟shell通配符的區別,哪些命令使用正則表達式,哪些使用shell通配符
通配符是系統級別的,而正則表達式需要相關工具的支持: egrep, awk, vi, perl。 在文本過濾工具里,都是用正則表達式,比如像awk,sed等,是針對文件的內容的。
通配符多用在文件名上,比如查找find,ls,cp,等等。
通配符包括:* ? [] [!] [-]
正則表達式除了上面的,還有很多,例如:\d,\s..等等,你網路一下。
⑼ shell 哪些符號裡面可以使用通配符
ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
⑽ bash命令行中帶通配符參數何時展開
非常奇妙的問題,答案同樣也很有趣(蛋疼。。。) 「 當使用類似於[a-z]的范圍表達式時,取決於LC_COLLATE設置的不同,可能會包含大寫字母。」 你可以測試以下命令(我用 bash 4.3.11 測試過): $ touch a A b B c C x X y Y z Z$ lsa A b B c C ...