![](/img/trans.png)
[英]Combine two regular expression rule in sed to remove unwanted characters from string
[英]Using sed to remove unwanted characters from output
我正在bash shell中運行以下命令,以嘗試僅返回[]
的十六進制字符和緊隨其后的整數值。 第一次sed調用將替換[
。 第二個替換:
和]
。 該命令產生了所需的結果,但是我想在一個sed語句中完成此操作,即不必再次通過sed進行遍歷。 我已經嘗試了這兩個正則表達式的很多組合,但未能找到產生所需結果的組合。
echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed 's/^.*\[//g' | sed 's/[][\:]//g'
00026fd916ca 12
也許您可以嘗試通過一個唯一的sed命令使用兩個正則表達式:
echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed -e 's/^.*\[//g' -e 's/[][\:]//g'
該命令將完全按照您的要求產生所需的結果:僅需一次sed操作。
Saludos。
echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed 's/^.*\[//;s/[][\:]//g'
像這樣嗎?
echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | awk '{gsub(/[^[]*\[|]|:/,"")}8'
00026fd916ca 12
echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed 's/://g;s/.*\[\(.*\)\]/\1/'
相似但基於內容提取
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.