Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
408 views
in Technique[技术] by (71.8m points)

regex - Using sed to remove unwanted characters from output

I am running the following command in a bash shell in an attempt to return only the hexadecimal characters inside the [] and the integer value immediately following. The first sed call replaces everything up to and including the [. The second replaces : and ]. The command produces the desired result however I'd like to accomplish this in a single sed statement, i.e. without having to pipe through sed a second time. I've attempted a good many combinations of these two regex expressions but have not been able to find a combination that produces the desired result.

echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed 's/^.*[//g' | sed 's/[][:]//g'
00026fd916ca 12
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

maybe you can try using the two regex with one unique sed command:

echo 'dot1dTpFdbPort[00:02:6f:d9:16:ca] 12' | sed -e 's/^.*[//g' -e 's/[][:]//g'

That command produces your desired result exactly what you want: in only one sed stetment.

Saludos.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...