【发布时间】:2018-02-23 19:57:10
【问题描述】:
很抱歉这个简单的问题,但我是编写 bash 程序的新手。
我正在尝试写下这一行:
for i in /etc/file*; do SOME-COMMAND $i; done
但是,我需要确保 file* 在 file.. 之后只能有 2 个字符。即“fileaa”可以,但“fileabc”不行。我需要对我的命令进行哪些更改?
谢谢!
【问题讨论】:
很抱歉这个简单的问题,但我是编写 bash 程序的新手。
我正在尝试写下这一行:
for i in /etc/file*; do SOME-COMMAND $i; done
但是,我需要确保 file* 在 file.. 之后只能有 2 个字符。即“fileaa”可以,但“fileabc”不行。我需要对我的命令进行哪些更改?
谢谢!
【问题讨论】:
尝试将* 更改为??,如下所示。
for i in /etc/file??; do SOME-COMMAND $i; done
* 是一个贪婪的百搭字符,这意味着它将匹配所有内容,另一方面,百搭字符 ? 表示任何单个字符,所以你想要 2 中的任何一个,所以 ?? 应该在这里有所帮助。
【讨论】: