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



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

    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中逐行读取并处理文本的做法见这里



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【Shell】逐行读取并处理文本(文件)
    标签:
    分享:

已经有3 条评论抢在你前面了~

  1. 沙发
    nikeairmax 2010年11月15日 下午1:31

    很好的解决,学习了

    [回复]

  2. 板凳
    linux学习 2010年11月13日 下午10:48

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

    [回复]

  3. 地板
    十字绣成品 2010年11月12日 下午4:50

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

    [回复]

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