Bash 用字符串查找一行,并用另一行替换整行
我想在目录中搜索名为file.txt的文件,并将这些文件中的整行替换为字符串Bash 用字符串查找一行,并用另一行替换整行,bash,awk,sed,find,Bash,Awk,Sed,Find,我想在目录中搜索名为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 从manbash: globstar: 如果设置,路径名扩展上下
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
从
manbash
:
globstar
:
如果设置,路径名扩展上下文中使用的模式**将匹配所有文件以及零个或多个目录和子目录。如果模式后面跟一个/,则只显示目录和子目录
匹配
使用GNU bash和GNU sed:
shopt -s globstar
sed -i 's/.*aprun.*/vasprun = "mpirun -np 64 vasp"/' -- **/file.txt
从
manbash
:
globstar
:
如果设置,路径名扩展上下文中使用的模式**将匹配所有文件以及零个或多个目录和子目录。如果模式后面跟一个/,则只显示目录和子目录
匹配
您还可以使用find命令查找文件,并将输出通过管道传输到sed命令
find-name file.txt | sed-i's/*aprun.*/vasprun=“mpirun-np 64 vasp”/g'
您还可以使用find命令查找该文件,并将输出传输到sed命令
find-name file.txt | sed-i's/*aprun.*/vasprun=“mpirun-np 64 vasp”/g'