Bash命令查找目录中的所有Fortran文件



我正在尝试查找目录中的所有Fortran文件,并替换该文件中的一些文本。

起初,我想使用find -regex ... -exec来查找fortran代码的所有文件扩展名并进行替换。然而,有很多文件扩展名,有没有其他方法可以识别fortran文件?

这里有一个非常简短的find命令,用于查找所有与Fortran相关的文件。最常见的Fortran文件是*.f*.f90及其大写对应文件。此外,使用了.f95.f03.f08,甚至.for。注意,-iregex与正则表达式不区分大小写匹配(与-regex相反)。

find . -iregex ".*.F[0-9]*" -o -iregex ".*.for" 

要对此进行操作,可以使用xargs:

find . -iregex ".*.F[0-9]*" -o -iregex ".*.for" | xargs head -1

head -1替换为要对文件执行的任何操作。


另一种处理方法是使用循环,例如:

for file in $(find . -iregex ".*.F[0-9]*" -o -iregex ".*.for"); do
  head -1 "$file"
done

这比xargs方法提供了更多的灵活性,并且更易于阅读。

最新更新