linux檔案合併、去重、拆分

rodertW發表於2019-02-27

一、兩個檔案的交集、並集(前提條件:每個檔案中不得有重複行)

1. 取出兩個檔案的並集(重複的行只保留一份)

  cat file1 file2 | sort | uniq > file3

2. 取出兩個檔案的交集(只留下同時存在於兩個檔案中的檔案)

  cat file1 file2 | sort | uniq -d > file3

3. 刪除交集,留下其他的行

  cat file1 file2 | sort | uniq -u > file3

二、兩個檔案合併

1. 一個檔案在上,一個檔案在下

  cat file1 file2 > file3

2. 一個檔案在左,一個檔案在右

  paste file1 file2 > file3

三、一個檔案去掉重複的行

1. 重複的多行記為一行

  sort file |uniq

2. 重複的行全部去掉

  sort file |uniq -u

四、檔案拆分

1.split 命令

  使用方式:split [OPTION] [INPUT [PREFIX]

 OPTION 有

 

  - l<行數>或-l<行數>  指定每多少行就要切成一個小檔案。

  -b<位元組>  指定每多少字就要切成一個小檔案。支援單位:m,k

  -C<位元組>  與-b引數類似,但切割時儘量維持每行的完整性。

如:

a>按照 指定分割後檔案行數

   對於文字檔案,可以通過指定分割後檔案的行數來進行檔案分割

   命令:split -l 300 large_file.log new_file_prefi

 

b>按照 指定分割後檔案大小

   對於文字檔案,可以通過指定分割後檔案的行數來進行檔案分割。

   命令:split -l 300 large_file.log new_file_prefix

相關文章