Linux读取文件的几种方式

2024-12-24 15:24:53 176

Linux读取文件的几种方式

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


读取文件有如下几种常见的方式:

  • 按字符数量读取:每一次读取一个字符,或者多个字符,直到把整个文件读取完

    # 范例:read命令的-n选项和-N选项可以指定一次性读取多少个字符
    # 只读一个字符
    read -n 1 data <a.txt
    echo $data
    # 读一百个字符,如果不足100字符时遇到换行符则停止读取
    read -n 100 data < a.txt
    echo $data
    # 读一百个字符,遇到换行符也不停止读取
    read -N 100 data < a.txt
    echo $data

    如果按照字符数量读取,直到把文件读完,则使用while循环,且将文件放在while结构的后面,而不能放在while循环的条件位置:

    # 正确
    while read -N 3 data;do
     echo "$data"
    done <a.txt


    # 错误
    while read -N 3 data < a.txt;do
     echo "$data"
    done
  • 按照分隔符进行读取: 一直读取值到遇到了指定的分隔符停止,下次继续从分隔的位置处向后读取,直到读完整个文件

    read命令的-d选项可以指定读取文件时的分隔符。

    # 一直读取,直到遇到字符m才停止,并将读取的数据保存到data变量中
    read -d "m" data <a.txt

    如果要按分隔符读取并读完整个文件,则使用while循环:

    while read -d "m" data ;do
     echo "$data"
    done <a.txt
  • 按行读取:每次读取一行,直到把整个文件读完(他是按照分隔符读取的一种特殊情况:将分隔符指定为\\\\n)

    read默认情况下就是按行读取的,一次读取一行。

    # 从a.txt中读取第一行保存到变量data中
    read line <a.txt

    如果要求按行读取完整个文件,则使用while循环:

    while read line;do
     echo "$line"
    done <a.txt
  • 一次性读取整个文件

    要一次性读取完整个文件,有两种方式:

    # 指定超出文件大小的字符数量
    read -N 1000000 data <a.txt
    echo "$data"

    # 指定文件中不存在的字符作为分隔符
    read -d "_" data <a.txt
    echo "$data"
    • 按照字符数量读取,且指定的字符数要大于文件的总大小

    • 按分隔符读取,且指定的分隔符是文件中不存在的字符,这样的话会一直读取,因为找不到分隔符而读完整个文件

  • 按字节数量读取:一次读取执行数量的字节数据,直到把文件读完


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。




提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: