日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头

發(fā)布時間:2023/12/9 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

點擊上方"開發(fā)者的花花世界",選擇"設為星標"技術干貨不定時送達!

這是一個知識點

方便快捷的給結構化數(shù)據(jù)文件分割大小并保留文件的表頭,幾十個G的結構化文件不僅閱讀編輯麻煩,而且使用受限,因此高效的分割成小文件并保留頭行

1、分割文件

在Linux下,切割和合并文件可以使用split和cat命令來實現(xiàn)。在Windows下,安裝Git Bash也可以使用split和cat命令。分割文件的命令是split,通過輸入split --help可以查詢幫助信息。假設現(xiàn)在有個6GB大小的文件test.log,這里簡單介紹下幾種分割的方式:

按大小分割文件(此處不推薦)

split -b 500m 文件 newfile

每個文件大小500m,生成的新文件的文件名是newfile后面加上按照aa,ab,ac……來排序的 比如文件有1.4G,那么會切割出3個文件,文件名分別是newfileaa,newfileab,newfileac,沒有擴展名 新文件名可以不設置,系統(tǒng)默認新文件以字母x開頭,也就是說,如果命令是:

split -b 500m log.txt

那么文件名就是xaa,xab,axc 速度比windows下的那些什么切割軟件快太多 同時,-C參數(shù)表示按照所有行數(shù)加起來的最大字節(jié)數(shù)進行分割,同樣可以使用k或者m作為單位,其實效果和上邊的-b差不多,只是在切割時將盡量維持每行的完整性。另外切開的文件還能再合起來,命令是:

cat newfile* > orifile

此處不推薦的原因是因為結構化文件按大小分割會造成結構破壞,故推薦按行分割

按行分割文件

split -l

split -l 5000 文件 newfile

-l參數(shù)表示按照行數(shù)進行分割,即一個小文件中最多有多少行,-l number可以縮寫成-number,上邊的命令表示按照5000行一個小文件進行分割。

推薦按行分割文件,能保留行的完整性不破壞結構化文件的結構

2、給分割后的文件插入表頭行

Sed是一款流編輯工具,用來對文本進行過濾與替換操作,特別是當你想要對幾十個配置文件做統(tǒng)一修改時,你會感受到Sed的魅力!Sed通過一次僅讀取一行內容來對某些指令進行處理后輸出,所以Sed更適合于處理大數(shù)據(jù)文件。首先,Sed通過文件或管道讀取文件內容,但Sed默認并不直接修改源文件,而是將讀入的內容復制到緩沖區(qū)中,我們稱之為模式空間(pattern space),所有的指令操作都是在模式空間中進行的,然后Sed根據(jù)相應的指令對模式空間中的內容進行處理并輸出結果,默認輸出至標準輸出(即屏幕上)。

Sed從文件中讀取數(shù)據(jù),如果沒有輸入文件,則默認對標準輸入進程數(shù)據(jù)進行處理,腳本指令是第一個非“-”開頭的參數(shù),具體語法格式如下:

sed [選項]...{腳本指令} [輸入文件]
選項含義
--version顯示sed版本
--help顯示幫助文檔
-n,--quit,--silent靜默輸出,默認情況下,sed程序在所有的腳本指令執(zhí)行完畢后,將自動打印模式空間中的內容,該選項可以屏蔽自動打印。
-e script允許多個腳本指令被執(zhí)行
-f script-file從文件中讀取腳本指令,對編寫自動腳本程序很實用。
-i,--in-place慎用,該選項將直接修改源文件
l,N該選項指令l指令可以輸出的行長度,l指令為輸出非打印字符。
--posix禁用GNU sed擴展功能
-r在腳本指令中使用擴展正則表達式
-s,--separate默認情況下,sed將把輸入的多個文件名作為一個長的連續(xù)的輸入流,而GNU sed則允許把它們當作單獨的文件
-u,--unbuffered最低限度的緩存輸入和輸出

因此,給分割后的文件加表頭的方法是:

sed -i "1i 字段,字段,字段,字段" 文件

1i表示第一行之前

3、批量給分割后的文件增加后綴名

由于分割后的文件默認是沒有后綴名的,故需要增加后綴名 非常簡單,例如CSV后綴

for i in *do mv $i $i".csv"done

完成


關注Github:1/2極客[1]

關注博客:御前提筆小書童[2]

關注網(wǎng)站:HuMingfeng[3]

關注公眾號:開發(fā)者的花花世界

References

[1]?1/2極客:?https://github.com/humingfeng[2]?御前提筆小書童:?https://blog.csdn.net/qq_22260641[3]?HuMingfeng:?https://royalscholar.cn

喜歡就點個"在看"唄^_^

總結

以上是生活随笔為你收集整理的qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。