看板 Linux 關於我們 聯絡資訊
假如我有一個字串 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'` 感覺每個方法都不是很漂亮 而類似的需求似乎很常碰到 不曉得版上的各位前輩們有沒有什麼建議可以分享 小弟在此先謝過摟~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.56.235.142 ※ 編輯: eai 來自: 61.56.235.142 (01/22 01:39)
readonly:echo $TMP|sed "s/\([0-9A-Z]*\):*/VAR=\1\n/g" 01/25 13:42