zoukankan      html  css  js  c++  java
  • Linux按行读取文件内容

    方法1:while循环中执行效率最高,最常用的方法。

    function while_read_LINE_bottm(){
    While read LINE
    do
    echo $LINE
    done  < $FILENAME
    }
    #!/bin/bash
    while read line
    do
    echo $line
    done < filename(待读取的文件)

     

    注释:习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。

    方法2 : 重定向法;管道法: cat $FILENAME | while read LINE

    Function While_read_LINE(){
    cat $FILENAME | while read LINE
    do
    echo $LINE
    done
    }
    #!/bin/bash
    cat filename(待读取的文件) | while read line
    do
    echo $line
    done

    注意这边如果是运行sh脚本的时候 头部要改成sh

    我只所有把这种方式叫做管道法,相比大家应该可以看出来了吧。当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。

    方法3: 文件描述符法

    复制代码
    Function while_read_line_fd(){
    Exec 3<&0
    Exec 0<$FILENAME
    While read LINE
    Do
    Echo $LINE
    Exec 0<&<3
    }
    复制代码

    这种方法分2步骤,第一,通过将所有内容重定向到文件描述符3来关闭文件描述符0.为此我们用了语法Exec 3<&0 。第二部将输入文件放送到文件描述符0,即标准输入。

    方法4 :    for  循环

    for line in `cat filename(待读取的文件)`
    do
    echo $line
    done

     注:本人依据需要使用方法4

    声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作
  • 相关阅读:
    ES6 语法详解(Promise对象(重点))
    ES6 语法详解(形参默认值)
    ES6 语法详解(三点运算符)
    ES6 语法详解(箭头函数(重点))
    ES6 语法详解(简化的对象写法)
    ES6 语法详解(模板字符串)
    ES6 语法详解(变量的解构赋值)
    [刷题] 走迷宫
    [bug] A reference cannot be reassigned, so it must be initialized at the member-initialization-list.
    [Qt] LibreCAD 源码分析
  • 原文地址:https://www.cnblogs.com/ZhaoHS/p/12202042.html
Copyright © 2011-2022 走看看