萬用字元 and [] 中括號的用法

scm1911發表於2018-11-24

萬用字元 and [] 中括號的用法

檔案萬用字元

  • 非預定義的字元類:
*         匹配零個或多個字元
?         匹配任何單個字元
~         當前使用者家目錄
~username     使用者username家目錄
~+        當前工作目錄
~-        前一個工作目錄
[0-9]     匹配數字範圍
[a-z]     字母
[A-Z]     字母
[wang]    匹配列表中的任何的一個字元
[^wang]   匹配列表中的所有字元以外的字元
  • 預定義的字元類 man 7 glob
[:digit:]    任意數字,相當於0-9
[:lower:]    任意小寫字母
[:upper:]    任意大寫字母
[:alpha:]    任意大小寫字母
[:alnum:]    任意數字或字母
[:blank:]    水平空白字元
[:space:]    水平或垂直空白字元
[:punct:]    標點符號
[:print:]    可列印字元
[:cntrl:]    控制(非列印)字元
[:graph:]    圖形字元
[:xdigit:]   十六進位制字元
[^[:upper:]] 排除大寫字母
[^[:lower:]] 排除小寫字母
[^[:digit:]] 排除數字

示例

  • 預定義的字元類示例

通過 ls f[a-Z] 檢視到的是大小寫混起來的,排列順序是 a A b B ... z Z
要想單獨檢視大寫字母或小寫字母命名的檔案,需要使用 [[:lower:]][[:upper:]]
由於 [:lower:] 等價於 a-z, [:upper:] 等價於 A-Z,所以需要載外面加上 []

[root@centos6 app]$ls f[a-z]
fa  fB  fd  fE  fg  fH  fj  fK  fm  fN  fp  fQ  fs  fT  fv  fW  fy
fA  fc  fD  ff  fG  fi  fJ  fl  fM  fo  fP  fr  fS  fu  fV  fx  fY
fb  fC  fe  fF  fh  fI  fk  fL  fn  fO  fq  fR  ft  fU  fw  fX  fz
[root@centos6 app]$ls f[[:lower:]]
fa  fc  fe  fg  fi  fk  fm  fo  fq  fs  fu  fw  fy
fb  fd  ff  fh  fj  fl  fn  fp  fr  ft  fv  fx  fz
[root@centos6 app]$
[root@centos6 app]$ls f[A-Z]
fA  fc  fD  ff  fG  fi  fJ  fl  fM  fo  fP  fr  fS  fu  fV  fx  fY
fb  fC  fe  fF  fh  fI  fk  fL  fn  fO  fq  fR  ft  fU  fw  fX  fz
fB  fd  fE  fg  fH  fj  fK  fm  fN  fp  fQ  fs  fT  fv  fW  fy  fZ
[root@centos6 app]$ls f[[:upper:]]
fA  fC  fE  fG  fI  fK  fM  fO  fQ  fS  fU  fW  fY
fB  fD  fF  fH  fJ  fL  fN  fP  fR  fT  fV  fX  fZ
[root@centos6 app]$
  • 預定義的字元類和其他的混用
[root@centos6 app]$ls f[[:lower:]357]
f3  f7  fb  fd  ff  fh  fj  fl  fn  fp  fr  ft  fv  fx  fz
f5  fa  fc  fe  fg  fi  fk  fm  fo  fq  fs  fu  fw  fy
  • 排除
[root@centos6 app]$ls f[^[:upper:]]
f1  f3  f5  f7  f9  fb  fd  ff  fh  fj  fl  fn  fp  fr  ft  fv  fx  fz
f2  f4  f6  f8  fa  fc  fe  fg  fi  fk  fm  fo  fq  fs  fu  fw  fy
[root@centos6 app]$ls f[^[:lower:]]
f1  f3  f5  f7  f9  fB  fD  fF  fH  fJ  fL  fN  fP  fR  fT  fV  fX  fZ
f2  f4  f6  f8  fA  fC  fE  fG  fI  fK  fM  fO  fQ  fS  fU  fW  fY
[root@centos6 app]$ls f[^[:digit:]]
fa  fB  fd  fE  fg  fH  fj  fK  fm  fN  fp  fQ  fs  fT  fv  fW  fy  fZ
fA  fc  fD  ff  fG  fi  fJ  fl  fM  fo  fP  fr  fS  fu  fV  fx  fY
fb  fC  fe  fF  fh  fI  fk  fL  fn  fO  fq  fR  ft  fU  fw  fX  fz
[root@centos6 app]$ls f[^0-9]
fa  fB  fd  fE  fg  fH  fj  fK  fm  fN  fp  fQ  fs  fT  fv  fW  fy  fZ
fA  fc  fD  ff  fG  fi  fJ  fl  fM  fo  fP  fr  fS  fu  fV  fx  fY
fb  fC  fe  fF  fh  fI  fk  fL  fn  fO  fq  fR  ft  fU  fw  fX  fz
[root@centos6 app]$
  • 僅顯示但當前目錄下的隱藏檔案或資料夾 ls -d .[^.]* ls -d .* l.

l. 其實就是 ls -d .* 的別名

[root@centos6 ~]$ls -d .[^.]*
.abrt          .cache     .gconf   .gtk-bookmarks   .local         .tcshrc
.bash_history  .config    .gconfd  .gvfs            .nautilus      .viminfo
.bash_logout   .cshrc     .gnome2  .ICEauthority    .pulse
.bash_profile  .dbus      .gnote   .imsettings.log  .pulse-cookie
.bashrc        .esd_auth  .gnupg   .lesshst         .ssh
[root@centos6 ~]$
[root@centos6 ~]$ls -d .*
.              .bashrc    .gconf          .gvfs            .pulse
..             .cache     .gconfd         .ICEauthority    .pulse-cookie
.abrt          .config    .gnome2         .imsettings.log  .ssh
.bash_history  .cshrc     .gnote          .lesshst         .tcshrc
.bash_logout   .dbus      .gnupg          .local           .viminfo
.bash_profile  .esd_auth  .gtk-bookmarks  .nautilus
[root@centos6 ~]$
[root@centos6 ~]$l.
.              .bashrc    .gconf          .gvfs            .pulse
..             .cache     .gconfd         .ICEauthority    .pulse-cookie
.abrt          .config    .gnome2         .imsettings.log  .ssh
.bash_history  .cshrc     .gnote          .lesshst         .tcshrc
.bash_logout   .dbus      .gnupg          .local           .viminfo
.bash_profile  .esd_auth  .gtk-bookmarks  .nautilus
[root@centos6 ~]$

https://www.cnblogs.com/shichangming/p/10011073.html

相關文章