>

正版管家婆马报彩图文件名通配,Linux学者必备文

- 编辑:正版管家婆马报彩图 -

正版管家婆马报彩图文件名通配,Linux学者必备文

3.文件名通配

命令别名

glob

alias cls='clear'

特殊字符,元字符,不表示字符的表面意义,而是只能

在shell中定义的别名仅在当前shell生命周期中有效;

匹配符合指征的字符串;

别名的有效范围:当前shell进程

*:任意长度的任意字符a*b,a开头到b结尾的);

unalias cls

?:任意单个字符a?b,a和b之间的一个字符);

CMD 使用命令本身

[]:匹配制定范围内的任意单个字符a[axy]b,只能取

 

[]里的一个)[a-zA-Z]);

命令替换 $(pwd) , 反引号:`pwd`

ls a[' '][a-zA-Z]显示a开头中间空格的文件;

把命令中某个子命令替换为其执行结果的过程

4.man 7 glob)

echo "The current directory is $(pwd)."

[:alnum:] [:alpha:] [:blank:] [:cntrl:]

touch ./file-$(date +%F-%H-%M-%S).txt

[:digit:] [:graph:] [:lower:] [:print:]

 

[:punct:] [:space:] [:upper:] [:xdigit:]

bash支持的引号:

[:alpha:] = [a-zA-Z]

``:命令替换

[:digit:] = [0-9]

"":弱引用,可以实现变量替换

[:lower:] = [a-z]

'':强引用,不完成变量替换

[:upper:] = [A-Z]

 

[:alnum:] = [a-zA-Z0-9]

文件名通配,globbing

[:space:] 单个空白字符

*,匹配任意长度的任意字符

[:punct:] 所有标点符号

?,匹配任意单个字符

[:print:] 所有打印字符

[],匹配指定范围内的任意单个字符

本文出自 “Nick Liu的博文” 博客,请务必保留此出处

  [abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]

glob 特殊字符,元字符,不表示字符的表面意义,而是只能 匹配符合指征的字符串; *:任意长度的任意字符a*b,a开头到b结尾...

  [:space:],表示空白字符

  [:punct:],表示所有标点符号

  [:lower:],表示小写字母

  [:upper:],表示大写字母

  [:alpha:],表示大小写字母

  ^[:alpha:],表示非字母

  [:digit:],表示数字

  [:alnum:],表示数字和大小写字母(alpha number)

#man 7 glob

[^],脱字符,匹配指定范围外的任意单个字符

以一个字母开头,后面跟数字的文件:ls [[:alpha:]][[:digit:]]*

以a开头,后面跟任意字符的文件:ls a*

以a开头,以3结尾的文件:ls a*3

以字母开头,后面跟任意数字的文件:ls [a-zA-Z][0-9]*

以a开头,后面跟一个数字:ls a[0-9]*

以任意一个字符开头,后面跟一个y,又跟其他任意字符的文件:ls ?y*

以字母开头,中间跟任意字符,以数字结尾: ls [a-zA-Z]*[0-9]

以非数字开头的所有文件:ls [^0-9]*

以字母开头,中间包含空白字符,以字母结尾的文件:ls [[:alpha:]]*[[:space:]]*[[:alpha:]]

练习:

1.显示所有以a或m开头的文件:ls [am]*

2.显示所有文件名中包含了数字的文件:ls *[0-9]*

3.显示所有以数字结尾且文件名中不包含空白的文件:正则表达式

4.显示文件名中包含了非字母或数字的特殊符号的文件:ls *[^[:alnum:]]*

 

本文由网络计算发布,转载请注明来源:正版管家婆马报彩图文件名通配,Linux学者必备文