我正在尝试查找目录中的所有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
方法提供了更多的灵活性,并且更易于阅读。