我有一个私钥文件,里面有一些额外的废话,并且只想要密钥的文本。
所以:
nonsense -----Begin Key-----
keep this1
keep this2
keep this3
-----End Key----- nonsense
应该成为
-----Begin Key-----
keep this1
keep this2
keep this3
-----End Key-----
编辑:我不想删除实际的“废话”这个词。它可以是关键文本之前和之后的任何内容。
答案1
怎么样
sed -e '/Begin Key/ s/^[^-]*//' -e '/End Key/ s/[^-]*$//'
前任。
$ sed -e '/Begin Key/ s/^[^-]*//' -e '/End Key/ s/[^-]*$//' file
-----Begin Key-----
keep this1
keep this2
keep this3
-----End Key-----
答案2
awk '/-----(Begin Key|End Key)-----/{sub(/^[^\-]+|[^\-]+$/, "")}1' data
/-----(Begin Key|End Key)-----/
查找开始或结束关键行{sub(/^[^\-]+|[^\-]+$/, "")}
清晰的开头和结尾的废话。1
总是打印