From fa6b11463e8b30a00755b027cd6a3864fd8e1ef7 Mon Sep 17 00:00:00 2001 From: sookie Date: Thu, 27 Sep 2018 17:55:26 +0800 Subject: [PATCH] =?UTF-8?q?shell=E9=80=9A=E9=85=8D=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_posts/linux/bash通配符.md | 58 ++++++++++++ source/images/linux/shell通配符1.png | Bin 0 -> 11334 bytes source/images/linux/shell通配符2.png | Bin 0 -> 2948 bytes yarn.lock | 137 ++++++++++++++++++++++++--- 4 files changed, 183 insertions(+), 12 deletions(-) create mode 100644 source/_posts/linux/bash通配符.md create mode 100644 source/images/linux/shell通配符1.png create mode 100644 source/images/linux/shell通配符2.png diff --git a/source/_posts/linux/bash通配符.md b/source/_posts/linux/bash通配符.md new file mode 100644 index 0000000..9d59e29 --- /dev/null +++ b/source/_posts/linux/bash通配符.md @@ -0,0 +1,58 @@ +--- +title: bash通配符 +date: 2018-9-26 15:08:08 +tags: + - linux + - shell +categories: + - linux +--- + +bash当中的通配符可以看做是原始的正则表达式 +不如之后出现的正则表达式功能强大, 规则相对简单一些 +可以在命令行或者shell编程当中使用 + + +### ? 字符 +代表任意的单个字符 +比如 +```bash +ls a?.txt +``` +也就是筛选文件名是两个字符, 扩展名是txt, 且第一个字符为a的 + +### * 字符 +代表任意数量的任意字符 +比如 +```bash +ls a*.txt +``` +也就是筛选文件名第一个字符为a的, 扩展名是txt的文件 + +### [...] 模式 +匹配方括号当中的任意 **一个字符** +或者一个连续的范围当中的 **一个字符** +```bash +# 匹配文件 ab.txt ac.txt +ls a[bc].txt +# 注意是 一个字符 , 所以abc.txt并不匹配 + +# 匹配文件 ab.txt ac.txt ad.txt +ls a[b-d].txt +``` +连续范围根据字符编码确定 + +### [^...]和[!...] +表示匹配不在方括号当中的 **一个字符** +```bash +# 匹配文件 ac.txt ad.txt等 +ls a[^b].txt +``` +也可以使用连续的范围, 方式同上 + +### {...}模式 +可以匹配大括号当中所有的模式, 模式之间用逗号分隔 +```bash +ls a{a,b,c,d,ee}.txt +``` +![shell通配符{}](/images/linux/shell通配符.png) diff --git a/source/images/linux/shell通配符1.png b/source/images/linux/shell通配符1.png new file mode 100644 index 0000000000000000000000000000000000000000..e82790597d3b9300773606150ca1f011806de064 GIT binary patch literal 11334 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 G&;J20xIAwF literal 0 HcmV?d00001 diff --git a/source/images/linux/shell通配符2.png b/source/images/linux/shell通配符2.png new file mode 100644 index 0000000000000000000000000000000000000000..659a2148dc4b93d3b2ca93e0fd32344a9a43cb9e GIT binary patch literal 2948 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