如何合并两个通配符表达式

时间:2016-02-12 15:27:17

标签: loops merge sh

在shell脚本中,我需要将相同的shell代码应用于以.F90.F作为扩展名的所有文件。

目前我使用

for file in *.F90 ;do ...
    # Code I need to run

for file in *.F; do ...
    # Same block of code copy-pasted.

有没有办法合并这两个循环,形成匹配文件数组,然后应用动作?

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题,因为我不明白为什么你需要一个数组。

这将是合法的语法:

for file in *.F90 *.F ; do ...

要保留受影响文件的列表,您可以执行以下操作:

shopt -s nullglob
files="*.F90 *.F"
for file in ${files} ; do ...

注意:nullglob行可以防止lame(IMO)行为* .F90或* .F不匹配任何文件。