Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 ksh 模式匹配来过滤目录中的文件列表,如下所示。
fn="${file##*[!0-9]}" if [[ -n $fn && $(( $fn % 2 )) -eq 0 ]]
是否可以在命令的命令行上使用相同的模式匹配和模数运算符ls?
ls
最终,我希望能够在单个循环语句中执行此操作。
for file in mail.sh* do done
如果您发布更多示例,可能会更容易回答,但我在这里猜测您正在尝试以偶数结尾的文件。
for file in *[02468] do ... done
或者,如果你想做一些比 mod 2 更复杂的事情,我会使用反引号和 perl
for file in `perl -e 'join(" ",grep /(\d+)/ && $1 % 2 == 0 , glob "file*");'` do ... done
$1 % 2 == 0您的示例算术表达式在哪里。(老实说,我也会用 perl 编写你的整个脚本!)
$1 % 2 == 0