split 命令
split 命令可以將一個大文件分割成很多個小文件,有時需要將文件分割成更小的片段,比如為提高可讀性,生成日志等。
選項
-b:值為每一輸出檔案的大小,單位為 byte。
-C:每一輸出檔中,單行的最大 byte 數。
-d:使用數字作為后綴, 作為輸出文件名的后綴。
-l:值為每一輸出檔的列數大小。
實例
生成一個大小為100KB的文件
[root@localhost split]# dd if=/dev/zero bs=1100k count=1 of=data.file
1+0 records in
1+0 records out
102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s
使用split命令將上面創建的data.file分割成大小為10KB的文件
[root@localhost split]# split -b 10k data.file
[root@localhost split]# ls
date.file xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多個帶有字母的后綴文件,如果想用數字后綴可使用-d參數,同時可以使用-a length來指定后綴的長度:
[root@localhost split]# split -b 10k data.file -d -a 3
[root@localhost split]# ls
date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009
為分割后的文件名指定前綴
[root@localhost split]# split -b 10k data.file -d -a 3 split_file
[root@localhost split]# ls
date.file split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009
使用-l選項根據文件的行數來分割文件,例如把文件分割成每個包含10行的小文件:
split -l 10 data.file
cat 合並文件
有兩種實現方式,一種是將兩個文件合並輸出一個新的文件,一種是將一個文件追加到另外一個文件后面。
方法一
讀入兩個文件,將兩個文件重定向到新的文件,這種方式可以讀入任意多個文件
$ cat file1.txt file2.txt > file.txt
方法二
使用>>將文本流將文件添加到另外一個文件的末尾
$ cat file1.txt >> file2.txt