linux–檔案合并和分割

來源:互聯網
上載者:User

轉自:http://www.2cto.com/os/201203/124813.html

切割合并檔案在linux下用split和cat就可以完成。下面舉些執行個體進行說明。

1.檔案切割檔案切割模式分為兩種:     文字檔     二進位模式。1.1文字模式文字模式只適用於文字檔,用這種模式切割後的每個檔案都是可讀的。文字模式又分為兩種:     按最大檔案大小切割;     按文本行數切割。1.1.1最大檔案大小切割split -C 5k duanxin split將文字檔duanxin按每塊最大5k的大小進行切割,不打碎行。輸出檔案名類似splitaa, splitab…… split -b 5k duanxin split每個分塊(當然,最後一個不保證)大小都是5k,可能會打碎行。1.1.2 按文本行數切割split -l 100 duanxin split每個分塊100行,不考慮大小。日誌分析時應該有用。1.2 二進位模式split -b 5k duanxin split每個分塊(當然,最後一個不保證)大小都是5k,基本不可讀。任何類型檔案都可以用這種切割模式。2.檔案合并cat split* >newduanxin不管用什麼方式切割,合并方法不變。3.其它split可以用-a選項指定輸出檔案名的長度。如split -l 100 -a 3 duanxin split則輸出檔案出類似於splitaaa,splitaab。不指定時預設為2。用-b或-C指定分塊大小時,可用的單位有,b for 512bytes, k for 1Kbytes, m for 1 Megbytes.split 參數:-a, --suffix-length=N   指定輸出檔案名的尾碼,預設為2個-b, --bytes=SIZE        指定輸出檔案的位元組數-C, --line-bytes=SIZE  每一輸出檔中,單行的最大 byte 數-d, --numeric-suffixes  使用數字代替字母做尾碼-l, --lines=NUMBER    NUMBER 值為每一輸出檔的列數大小  主要內容:sort命令、uniq命令、join命令、cut命令、paste命令、split命令、tr命令、tar命令 sort 命令:Linux的sort命令就是一種對檔案排序的工具,sort命令的功能十分強大,是Shell指令碼編程時常用的檔案排序工具;sort命令與awk一樣,將檔案看作記錄和域進行處理,預設的域分隔字元是空格符,sort命令的格式為: sort [選項] [輸入檔案]選項 意義-c 測試檔案是否已經被排序  complete-k 指定排序的域   k1  k2nr 往後加命令即可-m 合并兩個已排序的檔案   merge-n 根據數字大小進行排序  number-o [輸出檔案] 將輸出寫到指定的檔案,相當於將輸出重新導向到指定檔案  open-r 將排序結果逆向    reverse-t 改變域分隔字元   eg:-t:   一般最新定義-u 去除結果中的重複行     unique  -u uniq 命令 uniq命令用於去除文字檔中的重複行,這類似於sort命令的-u選項sort -u命令時,所有重複記錄都被去掉uniq命令去除的重複行必須是連續重複出現的行,中間不能夾雜任何其他文本行
選項 意義-c 列印每行在文本中重複出現的次數   count-d 只顯示有重複的記錄,每個重複記錄只出現一次   -u 只顯示沒有重複的記錄   unique join 命令join---實現兩個檔案中記錄的串連操作,串連操作將兩個檔案中具有相同域的記錄選擇出來,再將這些記錄所有的域放到一行(包含來自兩個檔案的所有域)join [選項] 檔案1 檔案2選項 意義-a1或-a2 除了顯示以共同域進行串連的結果外,-a1表示還顯示第1個檔案中沒有共同域的記錄,-a2則表示顯示第2個檔案中沒有共同域的記錄-i 比較域內容時,忽略大小寫差異-o 設定結果顯示的格式-t 改變域分隔字元-v1或-v2  跟-a選項類似,但是,不顯示以共同域進行串連的結果-1和-2 -1用於設定檔案1用於串連的域,-2用於設定檔案2用於串連的域當兩個檔案進行串連時,檔案1中的記錄可能在檔案2中找不到共同域,反過來,檔案2中也可能存這在樣的記錄,join命令的結果預設是不顯示這些未進行串連的記錄的-a和-v選項就是用於顯示這些未進行串連的記錄,-a1和-v1指顯示檔案1中的未串連記錄,而-a2和-v2指顯示檔案2中的未串連記錄-a和-v選項的區別在於:-a選項顯示以共同域進行串連的結果,而-v選項則不顯示這些記錄當兩個檔案進行串連時,檔案1中的記錄可能在檔案2中找不到共同域,反過來,檔案2中也可能存在這樣的記錄,join命令的結果預設是不顯示這些未進行串連的記錄的-a和-v選項就是用於顯示這些未進行串連的記錄,-a1和-v1指顯示檔案1中的未串連記錄,而-a2和-v2指顯示檔案2中的未串連記錄-a和-v選項的區別在於:-a選項顯示以共同域進行串連的結果,而-v選項則不顯示這些記錄join命令預設顯示串連記錄在兩個檔案中的所有域,而且是按順序來顯示的。-o選項用於改變結果顯示的格式join命令預設比較檔案1和檔案2的第1域,如果我們需要通過其他域進行串連,就需要使用-1和-2選項,-1用於設定檔案1用於串連的域,-2用於設定檔案2用於串連的域 join -t: -i -1 3 -2 1 TEACHER1.db TEACHER_HOBBY.db  cut 命令cut命令用於從標準輸入或文字檔中按域或行提取文本選項 意義-c 指定提取的字元數,或字元範圍   count-f 指定提取的域數,或域範圍  field-d 改變域分隔字元     cut -c1-5 TEACHER.db cut -d: -f1,4 TEACHER.db cut -d: -f1-3 TEACHER.db
paste 命令paste命令用於將文字檔或標準輸出中的內容 粘貼到新的檔案,它可以將來自於不同檔案的資料粘貼到一起,形成新的檔案 paste  [選項] 檔案1 檔案2選項 意義-d 預設域分隔字元是空格或Tab鍵,設定新的域分隔字元-s 將每個檔案粘貼成一行- 從標準輸入中讀取資料paste命令的“-”選項比較特殊,當paste命令從標準輸入中讀取資料時,“-”選項才起作用eg:[root@jselab shell-book]# ls | paste -d" " - - - - -                  #從標準輸入讀取資料anotherres.sh array_eval2.sh colon.sh example execerr.sh          #每行顯示5個檔案名稱execin.sh exec.sh FILE1 FILE2 forever.shhfile loggg loggg1 loopalias.sh matrix.shnewfile nokillme.sh part1 part2 part3parttotal refor.sh reif.sh selfkill.sh sleep10.shsleep55.sh stack.sh subsenv.sh subsep.sh subsig.shsubsparallel.sh subspipe.sh subsvar.sh TEACHER.db test.shtestvar.sh traploop.sh split 命令split命令用於將大檔案切割成小檔案,split命令可以按照檔案的行數、位元組數切割檔案,並能在輸出的多個小檔案中自動加上編號 split  [選項] 待切割的大檔案輸出的小檔案選項 意義-或-l 此兩個選項等價,都用於指定切割成小檔案的行數-b 指定切割成小檔案的位元組-C 與-b選項類似,但是,切割時盡量維持每行的完整性 tr 命令tr命令實現 字元轉換功能,其功能類似於 sed命令,但是,tr命令比sed命令簡單tr命令能實現的功能,sed命令都可以實現 tr [選項] 字串1 字串2 <輸入檔案 tr命令要麼將 輸入檔案重新導向到標準輸入,要麼從 管道讀入資料,記住tr命令的輸入檔案之前需要加上“ <”符號選項 意義-c 選定字串1中字元集的 補集,即反選字串1中的字元集-d 刪除字串1中出現的所有字元-s 刪除所有 重複出現的字元序列,只保留一個tr命令的-d選項只需跟一個字串,它表示刪除字串中出現的所有字元tr -d A-Z <AREACODE .dbtr命令的-s選項用於刪除所有重複出現的字元序列,只保留一個,即將重複出現的字串壓縮為一個字元spresstr -s "[a-z],[A-Z]" <AREACODE.dbtr命令也可以加上字串1和字串2,將字串1用字串2來 替換 tr "[a-z]" "[A-Z]" <AREACODEtr命令的-c選項用於選定字串1中字元集的補集,即反選字串1中的字元集contracttr -cs "[a-z][A-Z]" "[\012*]" <AR tar 命令tar命令是Linux的 歸檔命令,tar命令可以將檔案或目錄打成一個 tar [選項] 檔案名稱或目錄名選項 意義-c 建立新的包  create-r 為包添加新的檔案  refresh-t 列出包內容    -u 更新包中的檔案,若包中無此檔案,則將該檔案添加到包中  -x 解壓縮檔案  -f 使用壓縮檔或裝置,該選項通常是必選的   file-v 詳細報告tar處理檔案的資訊    view-z 用gzip壓縮和解壓縮檔案,若加上此選項建立壓縮包,  gzip那麼解壓縮時也需要加上此選項-f是必選選項,-c選項用於建立包 tar -cf db.all *.db-r選項可將檔案添加到包-t選項用於查看包的內容 tar -tf db.all
tar命令的另一重要功能就是解壓縮,以下兩種解壓縮命令足以滿足一般應用要求:tar -xvf 壓縮包名稱                    #解壓非gzip格式的壓縮包tar -zxvf 壓縮包名稱                   #解壓gzip格式的壓縮包tar -zxvf db.all.gzgzip命令是Linux系統中常用的 壓縮公用程式,它可以對tar命令建立的 進行壓縮,但是,gzip所產生的壓縮包使用 tar -zxvf命令就可解壓縮
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.