所以我有这个格式的一些名字和姓氏
firstname=John
lastname=Smith
adress=...
firstname=Whatever
lastname=Random
adress=...
如何以 firstname-lastname 格式提取它?
John-Smith
答案 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" (例如。)。然后它交换(x
)sed's
保留空间及其模式空间的内容,并在模式空间中替换(s/\n/-/
)嵌入的换行符{\n
){{1然后打印(-
)p
&#39}的模式空间。