⑴ .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 ...