修改文件内容的shell
-
@Samuel-Tu 你去研究一下 foamDictionary 这个命令的用法,绝大部分对openfoam 的dict 文件的修改都可以用这个命令来进行。
另外,sed 也有很多技巧能实现这种替换。你的需求可以这样来分解,首先找到 inlet,然后替换 inlet 下面的 type,如果用sed,则可以sed -i '/inlet/,+2s/wall/patch/' boundary
命令解释:
'/inlet/,+2'
是一个范围,表示从匹配到
inlet
的行开始到它之下的2行,s
是命令,表示替换,也就是在前面定义的范围内进行替换。/wall/patch/
表示实际的替换操作,这里是把wall
替换成patch
。最后的boundary
是文件名。WARNING: 注意到 sed 之后的
-i
选项,这个选项用了之后,会直接修改 boundary 文件的内容,所以除非你确信你的替换命令是正确的,才建议直接用-i
选项,如果仅仅是想看一下替换的效果,去掉-i
,这样命令会把替换之后的效果打印到屏幕上,不会直接修改文件。抛砖引玉。