Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

如何使用read命令读取文件的每一行

Posted on 2008-10-31 12:27 Prayer 阅读(1395) 评论(0)  编辑 收藏 引用 所属分类: Shell
下面是一个简单的例子程序,展示如何用read命令读取文件的每一行,并且把它输出到控制台。
如果没有输入文件,那么自身的shell文件将被使用
#!/bin/sh

if [ $# -gt 1  ]; then
    echo "Usage: $0 [FileName]"
    exit 1
elif [ $# -eq 1 ]; then
    MY_FILE=$1
else
    MY_FILE=$0
fi

if [ ! -f $MY_FILE ]; then
    echo "$MY_FILE does not exist!"
    exit 2
fi

MY_LINE_NO=1
while read MY_LINE
do
    printf "%5.5d: $MY_LINE\n" $MY_LINE_NO
    MY_LINE_NO=$((MY_LINE_NO+1))
done < $MY_FILE



---------------------------------------------
虽然这个东西看起来很简单,但是很多人有的时候会忘记它的正确使用
while read MY_LINE < $MY_FILE
do
printf "%5.5d: $MY_LINE\n" $MY_LINE_NO
MY_LINE_NO=$((MY_LINE_NO+1))
done
这样的结果很显然,每次都读$MY_FILE的第一行,并且是一个死循环,永远不会退出。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理