阅读文件的方法

时间:2013-05-15 16:17:23

标签: linux shell ksh

我正在编写一些循环浏览文本文件的ksh脚本,一次处理一行。 我倾向于使用

while read X1 X2 X3 X4
do
    <process line>
done < $INFILE

但使用了类似事情的同事

IFS="
"
for LINE in `cat $INFILE`
do
    <process line>
done

他使用'cut'来解析我自动获得的变量,但除此之外,这两种方法都有任何优点或缺点吗?别人怎么会这样做?

感谢。

1 个答案:

答案 0 :(得分:1)

使用while read可以提高内存效率,也可以在for LINE in符号拆分'字数'的行上拆分。如果行中有空格,则会拆分行。

因此,除非有充分理由使用$(cat $INFILE)表示法(在bash中,您可以使用效率更高的$(<$INFILE)),while read是更好的选择。