使用sed从联系人中提取名字和姓氏

时间:2016-01-10 09:45:29

标签: sed extract

所以我有这个格式的一些名字和姓氏

firstname=John
lastname=Smith
adress=...

firstname=Whatever
lastname=Random
adress=...

如何以 firstname-lastname 格式提取它?

John-Smith

1 个答案:

答案 0 :(得分:2)

使用GNU sed:

sed -n '/^firstname=/{s///;h};/^lastname=/{s///;H;x;s/\n/-/;p}' file

输出:

John-Smith
Whatever-Random

第一部分(/^firstname=/{s///;h})将部分从firstname=复制到sed的保留空间。

较长的第二部分(/^lastname=/{s///;H;x;s/\n/-/;p})会将该部分从lastname=追加到sed的保留空间。暂停空间现在包含" John"有一个尾随的换行符" Smith" (例如。)。然后它交换(xsed's保留空间及其模式空间的内容,并在模式空间中替换(s/\n/-/)嵌入的换行符{\n){{1然后打印(-p&#39}的模式空间。