sed高级操作

cat empnametitle.txt
John Doe
CEO
Jason Smith
IT Manager
Raj Reddy
Sysadmin
Anand Ram
Developer
Jane Miller
Sales Manager

命令 x(Exchange)交换模式空间和保持空间的内容
sed –n -e ‘{x;n}’ –e ‘/Manager/{x;p}’ empnametitle.txt
Jason Smith
Jane Miller

命令 h(hold)把模式空间的内容复制到保持空间
sed -n -e ‘/Manager/!h’ -e ‘/Manager/{x;p}’ empnametitle.txt
Jason Smith
Jane Miller

大写 H 命令表示把模式空间的内容追加到保持空间
sed -n -e ‘/Manager/!h’ -e ‘/Manager/{H;x;p}’ empnametitle.txt
Jason Smith
IT Manager
Jane Miller
Sales Manager
假定目前模式空间内容为”line 1”,保持空间内容为”line 2”。那么执行命令 H 后,模式空间 的内容没有改变,仍然为”line 1”,保持空间的内容则变为”line2\nline 1”。 (追加在后面)

命令 g(get)把保持空间的内容复制到模式空间
sed -n -e ‘/Manager/!h’ -e ‘/Manager/{g;p}’ empnametitle.txt
Jason Smith
Jane Miller

sed -n -e ‘/Manager/!h’ -e ‘/Manager/{x;G;s/\n/: /;p}’ empnametitle.txt
Jason Smith:IT Manager
Jane Miller:Sales Manager

在这里插入图片描述
在这里插入图片描述

发布了43 篇原创文章 · 获赞 0 · 访问量 3045

猜你喜欢

转载自blog.csdn.net/oTobias/article/details/103214680