В оболочке я могу получить следующую замену:
echo '10**PM_dw2(np.log10(k_ref))' | sed 's/10\*\*PM_dw2(np.log10(\(.*\))/PM_dw2(\1/g'
Resutl: PM_dw2(k_ref)
Но в редакторе Vim я не могу сделать то же самое.Пример:
Текст для замены на 10**PM_NW_dw2(np.log10(k_ref))
:
return ( P_obs_cross(k_ref, mu_ref,z,10**PM_dw2(np.log10(k_ref)),10**PM_NW_dw2(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) - 8*P_obs_cross(k_ref,mu_ref,z,10**PM_dw(np.log10(k_ref)),10**PM_NW_dw(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) + 8*P_obs_cros s(k_ref,mu_ref,z,10**PM_up(np.log10(k_ref)),10**PM_NW_up(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) - P_obs_cross(k_ref,mu_ref, z,10**PM_up2(np.log10(k_ref)), 10**PM_NW_up2(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) ) / (12*omega_b_fid*eps_wb)
6
Если я делаю под vim: %s/10\*\*PM_dw2(np.log10(\(.*\))/PM_dw2(\1/g
Тогда яget:
return ( P_obs_cross(k_ref, mu_ref,z,PM_dw2(k_ref)),10**PM_NW_dw2(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) - 8*P_obs_cros s(k_ref,mu_ref,z,10**PM_dw(np.log10(k_ref)),10**PM_NW_dw(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) + 8*P_obs_cross(k_ref,mu_re f,z,10**PM_up(np.log10(k_ref)),10**PM_NW_up(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) - P_obs_cross(k_ref,mu_ref,z,10**PM_up2( np.log10(k_ref)), 10**PM_NW_up2(np.log10(k_ref)), bias_s8, gf_s8, er_FH, er_FH_ref, er_FDA, er_FDA_ref, ir, jc, lc, iPop) ) / (12*omega_b_fid*eps_wb
Как вы можете видеть в начале строки, у меня есть: PM_dw2(k_ref))
, тогда как я ожидаю PM_dw2(k_ref)
(без второй скобки справа).
Что естьЯ сделал неправильно ??
С уважением