簡體   English   中英

使用sed從輸出中刪除不需要的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM