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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2023 | 回復(fù): 6
打印 上一主題 下一主題

怎樣從文件中讀如數(shù)據(jù) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2004-12-15 07:57 |只看該作者 |倒序瀏覽
比如有個文本文件內(nèi)容是:
192.168.0.1   10K    30K
192.168.0.3    20K   40K
192.168.0.10  10K    20K

怎樣把這個文件的內(nèi)容讀入3個數(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

從來沒有遍過復(fù)雜的shell,請各位幫忙

論壇徽章:
0
2 [報告]
發(fā)表于 2004-12-15 11:52 |只看該作者

怎樣從文件中讀如數(shù)據(jù)

哈哈,這幾天我也差不多在處理這個問題。我們就切磋一下吧。嘻嘻!
我提供一個大體思路(幫你編寫就扼殺你的思維了:)其實是我比較偷懶)和注要命令,要是有所幼稚之處,還請其他高手不要笑話我。

#!/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,文件都在這個目錄下處理
basedir=/home/usr/
orgfile=${basedir}iplst
endfile=${basedir}endlst

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

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

真慘,好像寫得差不多了。

論壇徽章:
0
3 [報告]
發(fā)表于 2004-12-15 16:23 |只看該作者

怎樣從文件中讀如數(shù)據(jù)

您是這個意思嗎?

#!/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]}

論壇徽章:
1
榮譽會員
日期:2011-11-23 16:44:17
4 [報告]
發(fā)表于 2004-12-15 16:34 |只看該作者

怎樣從文件中讀如數(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#

論壇徽章:
0
5 [報告]
發(fā)表于 2004-12-15 17:47 |只看該作者

怎樣從文件中讀如數(shù)據(jù)

嗚嗚,我忘記仔細(xì)看題了。人家只是想讀取數(shù)據(jù),又不是想導(dǎo)入到另外一個文件中。

論壇徽章:
0
6 [報告]
發(fā)表于 2004-12-16 12:20 |只看該作者

怎樣從文件中讀如數(shù)據(jù)

明白了,其實我的本意是shell能不能象c++
用<<一條語句就搞定.

呵呵,謝謝各位.

論壇徽章:
0
7 [報告]
發(fā)表于 2004-12-16 14:42 |只看該作者

怎樣從文件中讀如數(shù)據(jù)

笨方法一個:

  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ù)制代碼

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP