【发布时间】:2014-10-04 16:08:08
【问题描述】:
在过滤目录时寻找一种基于正则表达式创建 bash 数组的方法。
例如我这样做:
A. local -a arr=( "$1"/* ); arr=( "${arr[@]##*/} );
- Creates array of all contents of the path sent in $1.
B. local -a arr=( "$1"/*"$2" ); arr=( "${arr[@]##*/}" );
- Creates array on filter expression in $2.
(我不知道为什么 * 没有出现在 B 的 "$1"/*"$2" 中。如果我把 2 ** 都显示出来!)
但它只适用于简单的表达式:示例 '.pub' - 列出所有公钥。
但是,如果我发送“z.*.zip”来查找所有以“z.”开头的 zip 文件不工作。
我什至尝试在arr=( "$1"/*"$2" ) 中取出*"$2"。
*"$2" 没有出现!
非常感谢您的帮助。
谢谢。
【问题讨论】:
-
您的问题需要进一步澄清。
$2的值是多少?您打算与之匹配的文件是什么?
标签: arrays regex bash filter bash4