我在文件中有一组以下的行,我想在输出后使用相同的行内容插入一个新行,而不是uat_reset_fwd_outputs
它应该是Test_sample_data
[serverClass:UAT_SAI_Forwarder:app:uat_sai_inputs]
[serverClass:UAT_SAI_Forwarder:app:uat_reset_fwd_outputs]
[serverClass:UAT_TEST_Forwarder:app:uat_test_inputs]
[serverClass:UAT_TEST_Forwarder:app:uat_reset_fwd_outputs]
The output should look like below:
[serverClass:UAT_SAI_Forwarder:app:uat_sai_inputs]
[serverClass:UAT_SAI_Forwarder:app:uat_reset_fwd_outputs]
[serverClass:UAT_SAI_Forwarder:app:Test_sample_data]
[serverClass:UAT_TEST_Forwarder:app:uat_test_inputs]
[serverClass:UAT_TEST_Forwarder:app:uat_reset_fwd_outputs]
[serverClass:UAT_TEST_Forwarder:app:Test_sample_data]
答案 0 :(得分:0)
使用sed
:
sed 's/\(^.*\):.*outputs.*$/\0\n\1:Test_sample_data]/g' file.txt
此命令匹配包含字符串"输出"的任何行,捕获行的第一部分(在\ 1中)并附加" Test_sample_data"它。
答案 1 :(得分:0)
试试这个:
sed '/:[^:]*outputs] *$/{h;s//:Test_sample_data]/;x;G}' file
更新:
新行将附加到以outputs]
结尾的任何行。
答案 2 :(得分:0)
使用此:
perl -lne 'print;if(/uat_reset_fwd_outputs/){s/uat_reset_fwd_outputs/Test_sample_data/;print $_}' your_file
如果您想进行替换,请使用以下内容:
perl -i -lne 'print;if(/uat_reset_fwd_outputs/){s/uat_reset_fwd_outputs/Test_sample_data/;print $_}' your_file