首页 > 程序开发 > 【Shell】逐行读取并处理文本(文件)

【Shell】逐行读取并处理文本(文件)

2010年11月11日 发表评论 阅读评论

对输入的文本按行读取并进行处理,可使用如下代码: 

cat data.dat | while read line
do
    echo "File: ${line}"
done

while read line
do
    echo "File: ${line}"
done < data.dat

以上两种取其一即可,只是第一种由于采用了管道引用更广,可将其他命令的输出作为输入;以上只是简单了进行了echo输出,可采用更复杂的命令进行代替。

如果输入文本每行中没有空格,也可以采用以下两种进行处理,代码如下:

for line in $(cat data.dat)
do
    echo "File: ${line}"
done

for line in `cat data.dat`
do
    echo "File: ${line}"
done

如输入文本行中包括空格,那么会以空格来区分开多个元素,结果就不是按行读取了。

当然如果只是单纯的数据或文本的按行读取和显示的话,使用awk命令会更为方便。

p.s. Csh中逐行读取并处理文本的做法见这里


枫芸志原创文章,转载请注明来源并保留原文链接




本文链接:http://witmax.cn/shell-read-line.html




分类: 程序开发 标签: , 15,668次阅读
  1. 2010年11月12日16:50 | #1

    谢谢分享!!!!!!!!!1

    [回复]

  2. 2010年11月13日22:48 | #2

    如输入文本行中包括空格,那么会以空格来区分开多个元素,结果就不是按行读取了。
    这个可以通过设置$IFS来解决的吧楼主.

    [回复]

  3. nikeairmax
    2010年11月15日13:31 | #3

    很好的解决,学习了

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
订阅评论
  欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量