sed之n、h、x、N、G使用

$ cat file 
Packages: Hello-1
Owner: me me me me
Other: who care?
Description:
Hello world!
Other2: don't care
[要求]
一、若是Description:以後爲空,將其後一行內容併入此行。
二、若是Packages中包含‘Hello',將 Owner那一行copy到Description行的下一行並改成Origial-Owner
ide

[cpp] view plain copy print?spa

  1. sed '/Packages.*Hello/{n;h;s/^/Origial-/;x};/Description:$/{N;s/\n/ /;G}' file  .net

[註釋]
/Packages.*Hello/匹配,肯定包含Packages的是否包含Hello;
n,讀入下一行資料至pattern space;
h,將暫存pattern space的資料至hold space;
s/^/Origial-/開頭替換,也就是開頭加上;
x,將hold space與pattern space內的數據交換;
/Description:$/匹配只包含Description的行;
N,添加下一筆資料至pattern space內;
G,添加在pattern space原來數據後。orm

相關文章
相關標籤/搜索