shell script: pattern match (模式识别)

本文介绍了Bash中常用的模式匹配符号及其用法,包括?、*、+、@和!等,并通过具体示例展示了如何使用这些符号进行文件名扩展和条件判断。此外,还列举了字符类别如[:alnum:]、[:alpha:]等的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键词: Linux, pattern match, 模式识别, 匹配
以下摘自:书名: Linux Shell Scripting with Bash ,作者:Ken O. Burtch
  ?(pattern-list)—Matches zero or one occurrence of the given patterns
  *(pattern-list)—Matches zero or more occurrences of the given patterns
  +(pattern-list)—Matches one or more occurrences of the given patterns
  @(pattern-list)—Matches exactly one of the given patterns
  !(pattern-list)—Matches anything except one of the given patterns

例子:
COMPANY=”AAA Ballistics Ltd”
if [[ $COMPANY = +(A)*Ltd ]] ; then
   printf “The company name begins with one or more A’s and finishes with Ltd\n”
fi

其它:
  [:alnum:]—Alphanumeric
  [:alpha:]—Alphabetic
  [:ascii:]—ASCII characters
  [:blank:]—Space or tab
  [:cntrl:]—Control characters
  [:digit:]—Decimal digits
  [:graph:]—Non-blank characters
  [:lower:]—Lowercase characters
  [:print:]—Non-control characters
  [:punct:]—Punctuation characters
  [:space:]—Whitespace
  [:upper:]—Uppercase characters
  [:xdigit:]—Hexadecimal digits
例子:
COMPANY=”2nd Rate Solutions”
if [[ $COMPANY = [[ :digit:]]*]] ; then
   printf “Company name starts with a digit\n”
fi
例子:
$ ls *+(.c|.h)
actions.c coledit.c config.c dump.c form.c form.h main.c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值