成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Linux中分割和重組文件

系統(tǒng) Linux
我們將學習如何使用 csplit,split 和 cat 來重新整理文件,然后再將文件合并在一起。這些操作在任何文件類型下都有用:文本、圖片、音頻文件、ISO 鏡像文件等。

 

[[201602]]

非常有用的 csplit 命令可以將單個文件分割成多個文件。Carla Schroder 解釋說。

Linux 有幾個用于分割文件的工具程序。那么你為什么要分割文件呢?一個用例是將大文件分割成更小的尺寸,以便它適用于比較小的存儲介質(zhì),比如 U 盤。當您遇到 FAT32(***文件大小為 4GB),且您的文件大于此時,通過 U 盤傳輸文件也是一個很好的技巧。另一個用例是加速網(wǎng)絡(luò)文件傳輸,因為小文件的并行傳輸通常更快。

我們將學習如何使用 csplit,split 和 cat 來重新整理文件,然后再將文件合并在一起。這些操作在任何文件類型下都有用:文本、圖片、音頻文件、ISO 鏡像文件等。

使用 csplit 分割文件

csplit 是這些有趣的小命令中的一個,它永遠伴你左右,一旦開始用它就離不開了。csplit 將單個文件分割成多個文件。這個示例演示了最簡單的使用方法,它將文件 foo.txt 分為三個文件,以行號 17 和 33 作為分割點:

  1. $ csplit foo.txt 17 33 
  2. 2591 
  3. 3889 
  4. 2359 

csplit 在當前目錄下創(chuàng)建了三個新文件,并以字節(jié)為單位打印出新文件的大小。默認情況下,每個新文件名為 xx_nn:

  1. $ ls 
  2. xx00 
  3. xx01 
  4. xx02 

您可以使用 head 命令查看每個新文件的前十行:

  1. $ head xx* 
  2. ==> xx00 <== 
  3. Foo File 
  4. by Carla Schroder 
  5. Foo text 
  6. Foo subheading 
  7. More foo text 
  8. ==> xx01 <== 
  9. Foo text 
  10. Foo subheading 
  11. More foo text 
  12. ==> xx02 <== 
  13. Foo text 
  14. Foo subheading 
  15. More foo text 

如果要將文件分割成包含相同行數(shù)的多個文件怎么辦?可以指定行數(shù),然后將重復次數(shù)放在在花括號中。此示例重復分割 4 次,并將剩下的轉(zhuǎn)儲到***一個文件中:

  1. $ csplit foo.txt 5 {4} 
  2. 57 
  3. 1488 
  4. 249 
  5. 1866 
  6. 3798 

您可以使用星號通配符來告訴 csplit 盡可能多地重復分割。這聽起來很酷,但是如果文件不能等分,則可能會失敗(LCTT 譯注:低版本的 csplit 不支持此參數(shù)):

  1. $ csplit foo.txt 10 {*} 
  2. 1545 
  3. 2115 
  4. 1848 
  5. 1901 
  6. csplit: '10': line number out of range on repetition 4 
  7. 1430 

默認的行為是刪除發(fā)生錯誤時的輸出文件。你可以用 -k 選項來解決這個問題,當有錯誤時,它就不會刪除輸出文件。另一個行為是每次運行 csplit 時,它將覆蓋之前創(chuàng)建的文件,所以你需要使用新的文件名來分別保存它們。使用 --prefix= _prefix_ 來設(shè)置一個不同的文件前綴:

  1. $ csplit -k --prefix=mine foo.txt 5 {*}   
  2. 57 
  3. 1488 
  4. 249 
  5. 1866 
  6. 993 
  7. csplit: '5': line number out of range on repetition 9 
  8. 437 
  9. $ ls 
  10. mine00 
  11. mine01 
  12. mine02 
  13. mine03  
  14. mine04 
  15. mine05 

選項 -n 可用于改變對文件進行編號的數(shù)字位數(shù)(默認是 2 位):

  1. $ csplit -n 3 --prefix=mine foo.txt 5 {4} 
  2. 57 
  3. 1488 
  4. 249 
  5. 1866 
  6. 1381 
  7. 3798 
  8. $ ls 
  9. mine000 
  10. mine001 
  11. mine002 
  12. mine003 
  13. mine004 
  14. mine005 

csplit 中的 “c” 是上下文(context)的意思。這意味著你可以根據(jù)任意匹配的方式或者巧妙的正則表達式來分割文件。下面的例子將文件分為兩部分。***個文件在包含***次出現(xiàn) “fie” 的前一行處結(jié)束,第二個文件則以包含 “fie” 的行開頭。

  1. $ csplit foo.txt /fie/ 

在每次出現(xiàn) “fie” 時分割文件:

  1. $ csplit foo.txt /fie/ {*} 

在 “fie” 前五次出現(xiàn)的地方分割文件:

  1. $ csplit foo.txt /fie/ {5} 

僅當內(nèi)容以包含 “fie” 的行開始時才復制,并且省略前面的所有內(nèi)容:

  1. $ csplit myfile %fie% 

將文件分割成不同大小

split 與 csplit 類似。它將文件分割成特定的大小,當您將大文件分割成小的多媒體文件或者使用網(wǎng)絡(luò)傳送時,這就非常棒了。默認的大小為 1000 行:

  1. $ split foo.mv 
  2. $ ls -hl 
  3. 266K Aug 21 16:58 xaa 
  4. 267K Aug 21 16:58 xab 
  5. 315K Aug 21 16:58 xac 
  6. [...] 

它們分割出來的大小相似,但你可以指定任何你想要的大小。這個例子中是 20M 字節(jié):

  1. $ split -b 20M foo.mv 

尺寸單位縮寫為 K,M,G,T,P,E,Z,Y(1024 的冪)或者 KB,MB,GB 等等(1000 的冪)。

為文件名選擇你自己的前綴和后綴:

  1. $ split -a 3 --numeric-suffixes=9 --additional-suffix=mine foo.mv SB 
  2. 240K Aug 21 17:44 SB009mine 
  3. 214K Aug 21 17:44 SB010mine 
  4. 220K Aug 21 17:44 SB011mine 

-a 選項控制編號的數(shù)字位置。--numeric-suffixes 設(shè)置編號的開始值。默認前綴為 x,你也可以通過在文件名后輸入它來設(shè)置一個不同的前綴。

將分割后的文件合并

你可能想在某個時候重組你的文件。常用的 cat 命令就用在這里:

  1. $ cat SB0* > foo2.txt 

示例中的星號通配符將匹配到所有以 SB0 開頭的文件,這可能不會得到您想要的結(jié)果。您可以使用問號通配符進行更精確的匹配,每個字符使用一個問號:

  1. $ cat SB0?????? > foo2.txt 

和往常一樣,請查閱相關(guān)的手冊和信息頁面以獲取完整的命令選項。 

 

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-12-13 13:47:00

Linux重組文件

2018-09-28 09:00:00

LinuxTCPflow網(wǎng)絡(luò)流量

2009-12-07 09:46:20

Linux分區(qū)掛載LABEL

2022-12-06 08:27:50

Bash腳本字符串

2019-12-17 09:00:48

split分割Linux文件Linux

2021-07-04 19:48:07

LinuxFreeDOS復制文件

2018-06-01 10:37:26

Linux歸檔文件壓縮文件

2018-06-25 13:10:16

Linux復制重命名

2023-12-27 12:12:35

NumPy函數(shù)數(shù)組

2011-04-14 17:03:50

Linuxsplitcat

2023-08-01 08:26:24

Linux文件目錄

2019-10-15 13:29:24

LinuxLinux命令

2015-08-25 15:53:08

LinuxcURL

2022-03-28 08:47:26

Skanlite掃描文件Linux

2022-03-29 09:14:23

LinuxWindows文件

2023-11-25 17:13:49

Linux重命名文件

2021-06-01 08:00:00

Linux操作系統(tǒng)工具

2022-04-11 15:30:39

LinuxGlowMarkdown

2010-05-13 23:35:50

統(tǒng)一通信VoIP

2013-06-28 10:12:20

Linux軟Raid自動重組
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人欧美一区二区三区在线播放 | 日韩国产欧美一区 | 亚洲视频中文字幕 | 久色一区 | 国产精选一区 | 欧美激情视频一区二区三区在线播放 | 精品国产第一区二区三区 | 亚洲视频一区在线 | 九九热最新地址 | 精品日韩在线 | 国产乱一区二区三区视频 | 国产电影一区二区三区爱妃记 | 色欧美片视频在线观看 | 99在线精品视频 | av中文字幕在线观看 | 国产精品视频一二三区 | 亚洲精品中文字幕在线 | 国产精品免费在线 | 黄页网址在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 国产一区二区黑人欧美xxxx | 黄色网址在线免费播放 | 成人免费精品 | 日韩一区二区久久 | 久草日韩| 丁香婷婷综合激情五月色 | 亚洲视频在线一区 | 亚洲精品一区二区三区四区高清 | 日韩av视屏 | 伊人久久精品 | 国产视频导航 | 中文字幕高清免费日韩视频在线 | 日本久久久久久久久 | 成年人免费看的视频 | 亚洲欧美一区二区三区国产精品 | 91麻豆产精品久久久久久 | 欧日韩在线| 久久久激情视频 | 成人精品鲁一区一区二区 | 热99| 欧美日本一区 |