字串的分解 - Linux

Connor avatar
By Connor
at 2010-01-22T01:37

Table of Contents


假如我有一個字串
TMP=01:02:AF:BB:30:21

最後想分解成
VAR1=01
VAR2=02
:
VAR6=21

目前止想得到幾種方式
第一種
TMP=01:02:AF:BB:30:21
VAR1=`echo $TMP | cat -d ' ' -f1`
VAR2=`echo $TMP | cat -d ' ' -f2`
其他依此類推

第二種
TMP=192.168.13.4
TMP="`echo $TMP | sed 's/:/ /g'`"
i=0
for x in $TMP;do
eval VAR$i=$x #不用陣列是因為有些shell不支援
i=$((i+1))
done

第三種
assgin_value(){
VAR1=$1
VAR2=$2
VAR3=$3
}

TMP=093-251-449
assgin_value `echo $TMP | sed 's/-/ /g'`

感覺每個方法都不是很漂亮
而類似的需求似乎很常碰到
不曉得版上的各位前輩們有沒有什麼建議可以分享

小弟在此先謝過摟~~

--
Tags: Linux

All Comments

Steve avatar
By Steve
at 2010-01-26T00:36
echo $TMP|sed "s/\([0-9A-Z]*\):*/VAR=\1\n/g"

linux console mode 如何遠端傳送聲音 ?

Liam avatar
By Liam
at 2010-01-21T23:23
請問一下, 如何用 putty 在 ssh 連線下, 遠端傳送聲音呢 ? 例如用 ssh 在 command line 底下播放音樂 (ex: mplayer sample.mp3) 音樂從 linux server 端傳送到 windows 本機端的喇叭發聲. 小弟已知可用 Xming 並設定 ssh ...

安裝 glibc-header 出現rejecting I/O to dead device

Dorothy avatar
By Dorothy
at 2010-01-21T21:50
請教各位前輩 最近在裝glibc-headers-2.5-18.i386.rpm 的時候 會出現下面錯誤 scsi 3:0:0:0: rejecting I/O to dead device 因為這台電腦在公司,只記得有這項錯誤 這個訊息是代表硬體不支援這個版本嗎?? 我裝的是 Red hat Enter ...

NAT設定問題?

Tom avatar
By Tom
at 2010-01-21T20:32
A電腦 eth0 -- wan eth1 -- lan --接B電腦 (OS:UBUNTU 9.10) B電腦 eth0 --- 接A電腦 (OS:WinXP) 為何在A電腦只要開啟ip_foward,B電腦就可上網 但是我記得之前還要設iptables才行 (ipt ...

fedora 12 無法更新

Emily avatar
By Emily
at 2010-01-21T18:12
最近想安裝fedora 12 CPU使用的是 Intel Core 2 6300 根據Intel網站上查的到的資料這顆似乎是可支援64位元的CPU 所以就去找了x86_64的版本來安裝 安裝的過程ok 但一開始想要更新軟體的時候(共440個可用更新)會出現「意料之外的錯誤」而無法 更新,因此先只安裝安全性 ...

無法安裝CentOS

Yedda avatar
By Yedda
at 2010-01-21T17:20
我在安裝CentOS5.4 分割完要下步的時候 畫面顯示 Your boot partition is on a disk using the GPT partioning Scheme but this machines cannot boot using GPT. 然後就不給下一步,請問該怎麼解決呢。 ...