이번에 닥친일은 ethaddr 중 특정 부분을 추출하는 일인데
sed를 써야 하나? shell에서 해야 하나? 이래저래 테스트 하는데..
sh 에서는.. busybox의 ash 라서 그런지 $(string:n:m) 방식의 추출이 되지 않았고
유일하게 되는게 $(string#substr) 로 일치하는 스트링을 삭제하는 것 뿐이었다.
그리고 sed는 .. 라인단위로 하다 보니. 일치하는 문자만을 삭제하려니.. OTL
그런 이유로 tr이라는 녀석이 걸려 나오게 되었다.
tr은 translate or delete characters 라는데.. 도대체 r은 어디서 튀어 나온 녀석일까 ㄱ-
아무튼, uboot 에서 사용하는 예약어인 ethaddr 에서 MAC 부분을 추출하려고 하면
fw_printenv 와 쉘 그리고 tr을 조합하면 된다.
일단 fw_printenv의 값은
으로 출력되고 이 값을 변수에 넣어준다.
그러면 간단하게 ethaddr= 뒤의 MAC 어드레스가 : 없이 나오게 된다.
[링크 : http://k.daum.net/qna/view.html?qid=2f8nN&l_cid=Q&l_st=1] tr
[링크 : http://linux.die.net/man/1/tr] tr man page
[링크 : http://www.faqs.org/docs/abs/HTML/string-manipulation.html] sh 에서 스트링
[링크 : http://www.ibm.com/developerworks/kr/library/l-sed1.html] sed 사용법
sed를 써야 하나? shell에서 해야 하나? 이래저래 테스트 하는데..
sh 에서는.. busybox의 ash 라서 그런지 $(string:n:m) 방식의 추출이 되지 않았고
유일하게 되는게 $(string#substr) 로 일치하는 스트링을 삭제하는 것 뿐이었다.
그리고 sed는 .. 라인단위로 하다 보니. 일치하는 문자만을 삭제하려니.. OTL
그런 이유로 tr이라는 녀석이 걸려 나오게 되었다.
tr은 translate or delete characters 라는데.. 도대체 r은 어디서 튀어 나온 녀석일까 ㄱ-
아무튼, uboot 에서 사용하는 예약어인 ethaddr 에서 MAC 부분을 추출하려고 하면
fw_printenv 와 쉘 그리고 tr을 조합하면 된다.
일단 fw_printenv의 값은
ethaddr=00:00:00:00:00:00 |
ETH_TEMP=`fw_printenv ethaddr` ETH_ADDR=echo ${ETH_TEMP#ethaddr=} | tr -d : |
그러면 간단하게 ethaddr= 뒤의 MAC 어드레스가 : 없이 나오게 된다.
[링크 : http://k.daum.net/qna/view.html?qid=2f8nN&l_cid=Q&l_st=1] tr
[링크 : http://linux.die.net/man/1/tr] tr man page
[링크 : http://www.faqs.org/docs/abs/HTML/string-manipulation.html] sh 에서 스트링
[링크 : http://www.ibm.com/developerworks/kr/library/l-sed1.html] sed 사용법
'프로그램 사용 > sed awk regexp' 카테고리의 다른 글
sed를 이용해서 include 문 내의 디렉토리 구분자 변경하기 (2) | 2012.01.17 |
---|---|
리눅스에서 문자열 치환하기 (2) | 2010.02.02 |
문자열 치환하기 - string replace(substitute) using sed (0) | 2009.08.03 |
awk / sed / regular expression (0) | 2009.08.03 |