亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 怎樣從文件中讀如數(shù)據(jù) [打印本頁(yè)]

作者: anetwolf    時(shí)間: 2004-12-15 07:57
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
比如有個(gè)文本文件內(nèi)容是:
192.168.0.1   10K    30K
192.168.0.3    20K   40K
192.168.0.10  10K    20K

怎樣把這個(gè)文件的內(nèi)容讀入3個(gè)數(shù)組
比如
a[0]=192.168.0.1 b[0]=10k c[0]=30k
a[1]=192.168.0.2 b[1]=20k c[1]=40k
a[2]=192.168.0.10 b[2]=10k c[2]=20k

從來(lái)沒(méi)有遍過(guò)復(fù)雜的shell,請(qǐng)各位幫忙
作者: shaoping0330    時(shí)間: 2004-12-15 11:52
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
哈哈,這幾天我也差不多在處理這個(gè)問(wèn)題。我們就切磋一下吧。嘻嘻!
我提供一個(gè)大體思路(幫你編寫(xiě)就扼殺你的思維了:)其實(shí)是我比較偷懶)和注要命令,要是有所幼稚之處,還請(qǐng)其他高手不要笑話我。

#!/bin/bash
# define function
function move
{
# add for loop
for (( i=1;i<=${hang};i++ ))
do
ip=`sed -n "${i}p" ${ogfile} |awk '{print $1}'`
lie_1=`sed -n "${i}p" ${ogfile} |awk '{print $2}'`
lie_2=`sed -n "${i}p" ${ogfile} |awk '{print $3}'`
# awk也可以用cut代替,關(guān)鍵看你的文件

j=$(( ${i}-1 ))
echo "a[${j}]=${ip} b[${j}]=${lie_1} c[${j}]=${lie_2}" >>${endfile}
done
}

# enviroment setting
# 假設(shè)初始文件為iplst、生成文件為endlst
# 假設(shè)你的工作目錄為usr,文件都在這個(gè)目錄下處理
basedir=/home/usr/
orgfile=${basedir}iplst
endfile=${basedir}endlst

hang=`wc -l ${orgfile}|awk '{print $1}'`
# 上午忘記加awk過(guò)濾文件名,這會(huì)要人命。下午補(bǔ)上

#program
case ${1} in
-move)
    move;;
-help)
# 這個(gè)留給你直接寫(xiě)
    help;;
*)
    help;;
esac

真慘,好像寫(xiě)得差不多了。
作者: icesummit    時(shí)間: 2004-12-15 16:23
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
您是這個(gè)意思嗎?

#!/bin/ksh

set -A a $(cat file | awk '{print $1}')
set -A b $(cat file | awk '{print $2}')
set -A c $(cat file | awk '{print $3}')
echo ${a[0]}
echo ${a[1]}
echo ${a[2]}
作者: 寂寞烈火    時(shí)間: 2004-12-15 16:34
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
/home/lee/test#set -A a $(cut -f1 -d' ' <file)
/home/lee/test#echo ${a[0]}
192.168.0.1
/home/lee/test#set -A b $(cut -f2 -d' ' <file)
/home/lee/test#echo ${b[2]}
10K
/home/lee/test#set -A c $(cut -f3 -d' ' <file)
/home/lee/test#echo ${c[1]}
40K
/home/lee/test#
作者: shaoping0330    時(shí)間: 2004-12-15 17:47
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
嗚嗚,我忘記仔細(xì)看題了。人家只是想讀取數(shù)據(jù),又不是想導(dǎo)入到另外一個(gè)文件中。
作者: anetwolf    時(shí)間: 2004-12-16 12:20
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
明白了,其實(shí)我的本意是shell能不能象c++
用<<一條語(yǔ)句就搞定.

呵呵,謝謝各位.
作者: guangzongy    時(shí)間: 2004-12-16 14:42
標(biāo)題: 怎樣從文件中讀如數(shù)據(jù)
笨方法一個(gè):

  1. [kennyyu@haha shellTestRoom]$ more data.dat
  2. 192.168.0.1 10K 30K
  3. 192.168.0.3 20K 40K
  4. 192.168.0.10 10K 20K
  5. [kennyyu@haha shellTestRoom]$ more 1.sh
  6. #! /bin/sh

  7. while read line
  8. do
  9. line=(${line})
  10. a=(${a[*]} ${line[0]})
  11. b=(${b[*]} ${line[1]})
  12. c=(${c[*]} ${line[2]})
  13. done < data.dat

  14. echo ${a[0]} ${a[1]} ${a[2]}
  15. echo ${b[*]}
  16. echo ${c[*]}
  17. [kennyyu@haha shellTestRoom]$ ./1.sh
  18. 192.168.0.1 192.168.0.3 192.168.0.10
  19. 10K 20K 10K
  20. 30K 40K 20K
復(fù)制代碼






歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2