shell如何一次读一行?

sh/bash/dash/ksh/zsh等Shell脚本
回复
magic1136
帖子: 94
注册时间: 2006-01-02 0:37

shell如何一次读一行?

#1

帖子 magic1136 » 2010-01-21 10:26

我有一个ip.log文件
我想写一个shell脚本,一次读取ip.log文件的一行
请问要怎么写?
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: shell如何一次读一行?

#2

帖子 cnkilior » 2010-01-21 10:32

代码: 全选

while read i;do
echo $i
done <<YOUR_FILE
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: shell如何一次读一行?

#3

帖子 eexpress » 2010-01-21 10:34

分析log? 那通常用bash是折腾。换其他的脚本吧。
● 鸣学
magic1136
帖子: 94
注册时间: 2006-01-02 0:37

Re: shell如何一次读一行?

#4

帖子 magic1136 » 2010-01-21 10:45

eexpress 写了:分析log? 那通常用bash是折腾。换其他的脚本吧。
对阿对啊

那你有什么好推荐的吗?
我只是觉得用shell的话比用c++强多了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: shell如何一次读一行?

#5

帖子 eexpress » 2010-01-21 10:47

比c++强的。是perl
尤其涉及到分析文本。那就是perl的专长。
● 鸣学
magic1136
帖子: 94
注册时间: 2006-01-02 0:37

Re: shell如何一次读一行?

#6

帖子 magic1136 » 2010-01-21 10:48

cnkilior 写了:

代码: 全选

while read i;do
echo $i
done <<YOUR_FILE

代码: 全选

  1 while read ip;do
  2 echo $ip
  3 done <<'ip.log'
./test.sh: line 3: warning: here-document at line 3 delimited by end-of-file (wanted `ip.log')
头像
keky
帖子: 231
注册时间: 2007-12-20 15:08
来自: harbin
联系:

Re: shell如何一次读一行?

#7

帖子 keky » 2010-01-21 11:11

while read i;do
echo $i
done < YOUR_FILE
Keep trying...never say never. blog: H。U。C

代码: 全选

        .--.
       |o_o |
       |:_/ |           < Hello Girl >
      //   \ \             ------------
     (|     | )
    /'\_   _/`\
    \___)=(___/
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: shell如何一次读一行?

#8

帖子 xiooli » 2010-01-21 11:13

代码: 全选

with open('your_file') as f:
    line = f.readline().strip()
    blabla...
python
magic1136
帖子: 94
注册时间: 2006-01-02 0:37

Re: shell如何一次读一行?

#9

帖子 magic1136 » 2010-01-21 11:31

我写好了

代码: 全选

1 #! /bin/sh
2 # [email protected]
3 getiplist()
4 {
5         URL="http://192.168.1.191/iptv.php"
6         echo [$URL]
7         wget $URL -O ip.log
8 }
9
10 setcommands(){
11         command0="cd /"
12         command1="rm -rf /A6emenu.tgz"
13         command2="/emenu/shelldir/kill.sh"
14         command3="mv /emenu /bak.emenu"
15         command4="wget --ftp-user=test --ftp-password=test ftp://192.168.1.109/A6emenu.tgz"
16         command5="tar zxvf /A6emenu.tgz"
17         command6="/emenu/update.sh > /update.log"
18         command7="cp /bak.emenu/etc/* /emenu/etc/ -rf"
19 }
20
21 createfile(){
22         INPUT="commands"
23         OUTPUT="out.log"
24         rm -rf $INPUT
25         mknod $INPUT p
26         exec 3<>$OUTPUT
27         exec 4<>$INPUT
28 }
29
30 autotelnet(){
31         telnet $IP <&4 >&3 &
32         echo $command0 > $INPUT
33         echo $command1 > $INPUT
34         echo $command2 > $INPUT
35         echo $command3 > $INPUT
36         echo $command4 > $INPUT
37         echo $command5 > $INPUT
38         echo $command6 > $INPUT
39         echo $command7 > $INPUT
40         echo "exit" > $INPUT
41 }
42 printmessage(){
43         tail -f $OUTPUT &
44 }
45
46 loopscript(){
47         while read IP;do
48         IP="$IP 1234"
49         echo "start telnet ...  {$IP} please wait"
50        autotelnet
51         done < "ip.log"
52 }
53
54 getiplist
55 setcommands
56 createfile
57 printmessage
58 loopscript 
nelsonie
帖子: 50
注册时间: 2009-11-25 10:13

Re: shell如何一次读一行?

#10

帖子 nelsonie » 2010-01-21 22:30

用什么不重要,能实现就行
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: shell如何一次读一行?

#11

帖子 BigSnake.NET » 2010-01-21 22:32

又见ee卖广告
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: shell如何一次读一行?

#12

帖子 xiooli » 2010-01-21 23:44

其实分析这种数据用 awk 最好。
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

Re: shell如何一次读一行?

#13

帖子 anticlockwise » 2010-01-22 1:08

我同意EE,觉得PERL在这种情况下比较好……
t3swing
帖子: 1028
注册时间: 2008-11-01 21:42
来自: 树下板凳

Re: shell如何一次读一行?

#14

帖子 t3swing » 2010-01-22 9:01

搞个文本分析还要学那么多种语言
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

Re: shell如何一次读一行?

#15

帖子 anticlockwise » 2010-01-22 18:23

t3swing 写了:搞个文本分析还要学那么多种语言
搞个文本分析的确要知道挺多种语言的……
回复