找到一行带有字符串的行,并用另一行替换整行



我想在目录中搜索带有名称file.txt的文件,并将这些文件中的整行替换为由另一行aprun的字符串vasprun = "mpirun -np 64 vasp"如何使用awk或sed或任何其他bash实用程序执行此操作?

使用 GNU

bash 和 GNU sed:

shopt -s globstar
sed -i 's/.*aprun.*/vasprun = "mpirun -np 64 vasp"/' -- **/file.txt 

man bash

globstar : 如果设置,则路径名扩展上下文中使用的模式 ** 将匹配所有文件以及零个或多个目录和子目录。 如果模式后跟/,则仅目录和子目录 火柴。

您还可以使用 find 命令查找文件,并将输出通过管道传输到 sed 命令

find . -name file.txt | sed -i 's/.*aprun.*/vasprun = "mpirun -np 64 vasp"/g'

相关内容

  • 没有找到相关文章

最新更新