您好,登錄后才能下訂單哦!
Linux系統如何對文件進行分割和重組,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
使用 csplit 分割文件
csplit 是這些有趣的小
中的一個,它永遠伴你左右,一旦開始用它就離不開了。csplit 將單個文件分割成多個文件。這個示例演示了最簡單的使用方法,它將文件 foo.txt 分為三個文件,以行號 17 和 33 作為分割點:$ csplit foo.txt 17 33 2591 3889 2359
csplit 在當前目錄下創建了三個新文件,并以字節為單位打印出新文件的大小。默認情況下,每個新文件名為 xx_nn:
$ ls xx00 xx01 xx02
您可以使用 head
查看每個新文件的前十行:$ head xx* ==> xx00 xx01 xx02如果要將文件分割成包含相同行數的多個文件怎么辦?可以指定行數,然后將重復次數放在在花括號中。此示例重復分割 4 次,并將剩下的轉儲到最后一個文件中: $ csplit foo.txt 5 {4} 57 1488 249 1866 3798您可以使用星號通配符來告訴 csplit 盡可能多地重復分割。這聽起來很酷,但是如果文件不能等分,則可能會失敗(LCTT 譯注:低版本的 csplit 不支持此參數): $ csplit foo.txt 10 {*} 1545 2115 1848 1901 csplit: '10': line number out of range on repetition 4 1430默認的行為是刪除發生錯誤時的輸出文件。你可以用 -k 選項來解決這個問題,當有錯誤時,它就不會刪除輸出文件。另一個行為是每次運行 csplit 時,它將覆蓋之前創建的文件,所以你需要使用新的文件名來分別保存它們。使用 –prefix= prefix 來設置一個不同的文件前綴: $ csplit -k --prefix=mine foo.txt 5 {*} 57 1488 249 1866 993 csplit: '5': line number out of range on repetition 9 437 $ ls mine00 mine01 mine02 mine03 mine04 mine05選項 -n 可用于改變對文件進行編號的數字位數(默認是 2 位): $ csplit -n 3 --prefix=mine foo.txt 5 {4} 57 1488 249 1866 1381 3798 $ ls mine000 mine001 mine002 mine003 mine004 mine005csplit 中的 “c” 是上下文(context)的意思。這意味著你可以根據任意匹配的方式或者巧妙的正則表達式來分割文件。下面的例子將文件分為兩部分。第一個文件在包含第一次出現 “fie” 的前一行處結束,第二個文件則以包含 “fie” 的行開頭。 $ csplit foo.txt /fie/在每次出現 “fie” 時分割文件: $ csplit foo.txt /fie/ {*}在 “fie” 前五次出現的地方分割文件: $ csplit foo.txt /fie/ {5}僅當內容以包含 “fie” 的行開始時才復制,并且省略前面的所有內容: $ csplit myfile %fie%將文件分割成不同大小split 與 csplit 類似。它將文件分割成特定的大小,當您將大文件分割成小的多媒體文件或者使用網絡傳送時,這就非常棒了。默認的大小為 1000 行: $ split foo.mv $ ls -hl 266K Aug 21 16:58 xaa 267K Aug 21 16:58 xab 315K Aug 21 16:58 xac [...]它們分割出來的大小相似,但你可以指定任何你想要的大小。這個例子中是 20M 字節: $ split -b 20M foo.mv尺寸單位縮寫為 K,M,G,T,P,E,Z,Y(1024 的冪)或者 KB,MB,GB 等等(1000 的冪)。為文件名選擇你自己的前綴和后綴: $ split -a 3 --numeric-suffixes=9 --additional-suffix=mine foo.mv SB 240K Aug 21 17:44 SB009mine 214K Aug 21 17:44 SB010mine 220K Aug 21 17:44 SB011mine-a 選項控制編號的數字位置。–numeric-suffixes 設置編號的開始值。默認前綴為 x,你也可以通過在文件名后輸入它來設置一個不同的前綴。將分割后的文件合并你可能想在某個時候重組你的文件。常用的 cat 命令就用在這里: $ cat SB0* > foo2.txt示例中的星號通配符將匹配到所有以 SB0 開頭的文件,這可能不會得到您想要的結果。您可以使用問號通配符進行更精確的匹配,每個字符使用一個問號: $ cat SB0?????? > foo2.txt和往常一樣,請查閱相關的手冊和信息頁面以獲取完整的命令選項。至此關于Linux系統中文件分割和重組的教程分享完畢,大家有任何問題都可以通過評論區將問題提交給我們。以上就是良許教程網為各位朋友分享的Linux系統相關內容。想要了解更多Linux相關知識記得關注公眾號“良許Linux”,或掃描下方二維碼進行關注,更多干貨等著你!
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。