Sed替换一条线的“非固定”部分

时间:2016-05-14 07:08:54

标签: 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后跟任何数字,这取决于其他事情。现在我如何用ip $ j替换ipxy,其中我有一个变量j=pq。 例如,如果j=45,则ip10更改为ip45。我想我必须使用sed来执行此操作。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用此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"