Shell Sed将取代a';非固定';线的一部分

Shell Sed将取代a';非固定';线的一部分,shell,sed,Shell,Sed,我在文件中有以下行: cmd="mpirun -np 16 $executable /home/lahiria/NEMO5_debug/prototype/examples/readin_hamiltonian/121_structure_tranmission_test/ip10.in" 最后,不是ip10,而是ip20,或者ip30,或者ip后面跟任何数字,这取决于其他因素。现在,在我有一个变量j=pq的情况下,如何用ip$j替换ipxy。 例如,如果j=45,则ip10更改为ip45。

我在文件中有以下行:

cmd="mpirun -np 16  $executable /home/lahiria/NEMO5_debug/prototype/examples/readin_hamiltonian/121_structure_tranmission_test/ip10.in"
最后,不是ip10,而是ip20,或者ip30,或者ip后面跟任何数字,这取决于其他因素。现在,在我有一个变量
j=pq
的情况下,如何用ip$j替换ipxy。 例如,如果
j=45
,则
ip10
更改为
ip45
。我想我必须使用sed来执行此操作。
谢谢

您可以使用此sed命令:

j=45
sed -E "s/ip[[:digit:]]{2}/ip$j/" file
模式
ip[[:digit:]{2}/
将匹配文本
ip
,后跟任意2位数字

输出:

cmd="mpirun -np 16  $executable /home/lahiria/NEMO5_debug/prototype/examples/readin_hamiltonian/121_structure_tranmission_test/ip45.in"