手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

Linux讀取文件的幾種方式

2024-12-24 15:24:53 5154

Linux讀取文件的幾種方式

歡迎來到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。


讀取文件有如下幾種常見的方式:

  • 按字符數(shù)量讀取:每一次讀取一個(gè)字符,或者多個(gè)字符,直到把整個(gè)文件讀取完

    # 范例:read命令的-n選項(xiàng)和-N選項(xiàng)可以指定一次性讀取多少個(gè)字符
    # 只讀一個(gè)字符
    read -n 1 data <a.txt
    echo $data
    # 讀一百個(gè)字符,如果不足100字符時(shí)遇到換行符則停止讀取
    read -n 100 data < a.txt
    echo $data
    # 讀一百個(gè)字符,遇到換行符也不停止讀取
    read -N 100 data < a.txt
    echo $data

    如果按照字符數(shù)量讀取,直到把文件讀完,則使用while循環(huán),且將文件放在while結(jié)構(gòu)的后面,而不能放在while循環(huán)的條件位置:

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


    # 錯(cuò)誤
    while read -N 3 data < a.txt;do
     echo "$data"
    done
  • 按照分隔符進(jìn)行讀取: 一直讀取值到遇到了指定的分隔符停止,下次繼續(xù)從分隔的位置處向后讀取,直到讀完整個(gè)文件

    read命令的-d選項(xiàng)可以指定讀取文件時(shí)的分隔符。

    # 一直讀取,直到遇到字符m才停止,并將讀取的數(shù)據(jù)保存到data變量中
    read -d "m" data <a.txt

    如果要按分隔符讀取并讀完整個(gè)文件,則使用while循環(huán):

    while read -d "m" data ;do
     echo "$data"
    done <a.txt
  • 按行讀取:每次讀取一行,直到把整個(gè)文件讀完(他是按照分隔符讀取的一種特殊情況:將分隔符指定為\\\\n)

    read默認(rèn)情況下就是按行讀取的,一次讀取一行。

    # 從a.txt中讀取第一行保存到變量data中
    read line <a.txt

    如果要求按行讀取完整個(gè)文件,則使用while循環(huán):

    while read line;do
     echo "$line"
    done <a.txt
  • 一次性讀取整個(gè)文件

    要一次性讀取完整個(gè)文件,有兩種方式:

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

    # 指定文件中不存在的字符作為分隔符
    read -d "_" data <a.txt
    echo "$data"
    • 按照字符數(shù)量讀取,且指定的字符數(shù)要大于文件的總大小

    • 按分隔符讀取,且指定的分隔符是文件中不存在的字符,這樣的話會(huì)一直讀取,因?yàn)檎也坏椒指舴x完整個(gè)文件

  • 按字節(jié)數(shù)量讀取:一次讀取執(zhí)行數(shù)量的字節(jié)數(shù)據(jù),直到把文件讀完


藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。

更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。




提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: