shell中的path expansion

glob扩展

在shell中的路径扩展中,涉及到的glob有如下几种:

? 匹配任何单个字符

* 匹配0到多个字符

[set] 匹配任何一个在set当中的字符,如[0-9],则匹配任何一个数字

[!set] 匹配任何不在set当中的字符,如[!0-9],则匹配任何非数字字符

需要注意的是:

在基于set的glob,如果要匹配-,则可以把-放在set前面,或者放在set后面,比如[-a0-9]匹配-,a,0到9中的任意字符;

如果要匹配!,则需要进行转义

如果匹配不成功,则保留原来的字符串,比如ls g*,如果无法进行匹配,shell会报错:g* No such file or directory

brace 扩展

1 brace扩展的基本格式

preamble{逗号分隔的字符串}postscript,其中premable和postscript是可选的,比如:

a{b, c}d,扩展为abd,acd

2 brace扩展可以嵌套

a{b{c,d},e}f,扩展为abcf,abdf,aef

3 brace扩展可以用来表示一组连续的字母或者数字:

{0..4}扩展为0 1 2 3 4

上面的glob扩展和brace扩展,两者都可以用于shell的路径扩展当中

时间: 2024-10-02 21:30:31

shell中的path expansion的相关文章

Linux CentOS 7 shell中的特殊字符及与管道相关的命令(cut,sort,wc,uniq,tee,tr,split)

一. shell特殊符号cut命令 1.特殊符号 * :任意个任意字符 ? :任意单个字符# :注释\ :转义字符 | :管道符 2.几个和管道相关的命令 (1) cut cut 把文件分段 cat /etc/passwd cut -d: -f 3  /etc/passwd    cut -d: -f 3,6,5  /etc/passwd cut -d: -f 3-6  /etc/passwd cut -c 10 /etc/passwd   取第十个字符 cut -c 5-10 /etc/pas

Bash Shell 中的特殊字符

什么是Bash Shell中的特殊字符?某些特殊字符在Bash Shell里不是表示其字符含义本身,而是另有含义,称为:meta-meaning. 1.字符:# 代表注释,如果有一行以#开始,那么意味着这行不会被执行,只是一行说明注释. 例如: # this is comments 这是一行注释. 但是这里有个例外,那就是脚本的第一行我们经常看到的: #!/bin/bash 这个指示一个脚本的解释器,说明这个脚本是由/bin/bash 来解释的. 从#为开始,后面的字符即为注释,直到该行结束.体

shell 中的特殊符号的含义

来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 第四章 基本功 - 特殊符号 学习撰写 script 最迅速的捷径是观摩别人的 script 档案.不过,此法儘管实际,但这对于 shell 基础认知不足的人来说,通常都得到"事倍功半",甚至半途而废.通常第一个问题就是搞不懂那些"特殊符号"到底在代表什么意义,又到底她们干了些什么? 以下,农夫尝试列出常用的特殊符号表列,并在说明中加入简短的范例.原则上,

shell中的特殊符号总结

在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ? : ^ $#   [email protected] `command`{}   [] [[]] ()   (()) ||   && {xx,yy,zz,...}~   ~+   ~-   &   \\<...\\>   + - %=   ==   != # 井号 (c

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列     ;; esac Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)_linux shell_脚本之家 在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些

常见Linux Shell中的特殊符号含义

在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,往往能给我们起到事半功倍的效果,下面就罗列一些常见的特殊符号. # 井号 如#!/bin/bash井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行.# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头

[ SHELL编程 ] shell中各种括号的使用方法

转载自:http://www.jb51.net/article/60326.htm 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern)现在分

shell中$(( )) 与 $( ) 还有${ }的区别

http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "la

shell中常用的特殊符号

在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# [email protected] `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == != # 井号 (comments) 注释字符 该句不会被执行 ~ 帐户的 home 目录 用户的