Linux分割文件命令——分割大文件輕鬆搞定

一、split命令

在Linux系統中,我們可以使用split命令來分割文件。終端中輸入以下命令:

$ split [options] input_file prefix
 

其中,options是選項,可以選擇是否指定每個文件的大小、文件名等;input_file為需要分割的文件名;prefix為分割後生成的文件前綴,可以自己取一個名字。

具體來說,我們可以有以下選項:

  • -a suffix_length:指定生成文件名後綴的長度,默認為2
  • -b size:指定每個文件的大小,可以為B、K、M、G進行單位轉換,例如10M表示每個文件大小為10兆位元組,不指定則默認為2G
  • -d:使用數字作為後綴
  • -l line_count:按行數切分,每個文件行數相等
  • –verbose:輸出分割過程

例如,我們想要將一個名為big_file的大文件分割成以sample為前綴的小文件,每個文件大小為1MB:

$ split -b 1M big_file sample
 

執行上述命令後,會自動將big_file分割成若干個1MB大小的文件,並且以sample作為文件名前綴,加上後綴序號。

二、csplit命令

相比於split命令,csplit可以按照文件內容進行分割。假設我們要將大小如下的文件content分割成兩部分:前半部分包含字元串abc,後半部分包含字元串efg。可以在終端中輸入以下的命令:

$ csplit content /abc/ /efg/
 

其中,content為需要分割的文件名,/abc/和/efg/為正則表達式,表示匹配含有abc和efg的字元串作為分割標誌。

通過以上命令,csplit會將content文件分割為兩個文件xx00和xx01,其中xx00包含了abc字元串之前的內容,xx01則包含了efg字元串之後的內容。

三、按行數分割文件

除了上述命令,我們還可以通過sed命令實現按行數分割文件。相比於split命令和csplit命令,sed命令更加靈活,可以根據需求進行配置。

先看一下命令格式:

$ sed -n $startLine,$endLinep fileName > newFileName
 

其中,$startLine和$endLine分別代表需要分割的起始行和結束行,fileName為原文件名,newFileName為新文件名,可以自定義。

例如,我們將一個名為text.txt的大文件按行數分割成每個文件包含10行的小文件,可以使用以下命令:

$ sed -n 1,10p text.txt > text_1.txt
$ sed -n 11,20p text.txt > text_2.txt
...
 

多個文件同樣建議使用循環來進行分割操作:

$ file="text.txt"
$ startLine=1
$ num=10
$ lines=$(cat $file | wc -l)
$ for (( i=1; (( i - 1 ) * $num + 1 ) <= $lines; i++ ))
  do
    endLine=$(( $num * $i ))
    sed -n ${startLine},${endLine}p $file > text_$i.txt
    startLine=$(( $endLine + 1 ))
  done
 

執行上述命令,會自動將text.txt分割成每個文件包含10行的形式,同時命名為text_1.txt、text_2.txt…等。

四、split命令常用技巧

使用split命令時,常見的一些技巧有:

  • 1、分割後的文件名自動按數字編號排序。
  • 2、通過cat命令可以將分割後的多個小文件合併為一個大文件。
  • 3、可以使用find命令根據文件名前綴進行搜索。
  • 4、使用rm命令可以刪除分割後的小文件。

例如:

  • 1、將文件合併:cat sample* > big_file
  • 2、在當前目錄下,根據sample前綴搜索文件:find . -name “sample*”
  • 3、刪除sample前綴的所有小文件:rm -r sample*

以上技巧均可以根據實際需求進行靈活使用,更好地適應多種情況的處理。

五、總結

Linux系統中的文件分割命令包括split、csplit、sed等多種,每個命令都有其獨特的優點。

使用split命令最為常見,可以按照文件大小、行數等進行分割;csplit命令可以按照字元串內容進行分割;sed命令則是根據行數進行分割。

在實際使用過程中,可以結合多個命令進行靈活運用,利用命令行的強大功能輕鬆搞定大文件的分割處理。

原創文章,作者:PSNZJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370460.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PSNZJ的頭像PSNZJ
上一篇 2025-04-22 01:14
下一篇 2025-04-22 01:14

相關推薦

  • vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常問題的解決

    本文旨在解決vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常的問題,提供完整的代碼示例供參考。 一、分析問題 首先,需了解vue中下載文件的情況。一般情況下,我們…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python將矩陣存為CSV文件

    CSV文件是一種通用的文件格式,在統計學和計算機科學中非常常見,一些數據分析工具如Microsoft Excel,Google Sheets等都支持讀取CSV文件。Python內置…

    編程 2025-04-29
  • Python如何導入py文件

    Python是一種開源的高級編程語言,因其易學易用和強大的生態系統而備受青睞。Python的import語句可以幫助用戶將一個模塊中的代碼導入到另一個模塊中,從而實現代碼的重用。本…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python寫文件a

    Python語言是一種功能強大、易於學習、通用並且高級編程語言,它具有許多優點,其中之一就是能夠輕鬆地進行文件操作。文件操作在各種編程中都佔有重要的位置,Python作為開發人員常…

    編程 2025-04-29

發表回復

登錄後才能評論