Shell-Script
SED 或 AWK 刪除第一個破折號之前和最後一個破折號之後的所有內容
我有一個私鑰文件,裡面有一些額外的廢話,只想要密鑰的文本。
所以:
nonsense -----Begin Key----- keep this1 keep this2 keep this3 -----End Key----- nonsense
應該成為
-----Begin Key----- keep this1 keep this2 keep this3 -----End Key-----
編輯:我不想只是刪除實際的“廢話”這個詞。在關鍵文本之前和之後,它可能是任何東西。
怎麼樣
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-----
awk '/-----(Begin Key|End Key)-----/{sub(/^[^\-]+|[^\-]+$/, "")}1' data
/-----(Begin Key|End Key)-----/
查找開始或結束關鍵行{sub(/^[^\-]+|[^\-]+$/, "")}
明確領先和落後的廢話。1
總是列印