欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux使用split切割日志文件的示例詳解

 更新時(shí)間:2025年03月27日 15:18:05   作者:江湖有緣  
split 是一個(gè)在Unix和類Unix系統(tǒng)(如Linux)中非常有用的命令行工具,它用于將大文件分割成較小的片段,下面我們就來看看如何使用split進(jìn)行切割日志文件吧

一、split命令介紹

split 是一個(gè)在Unix和類Unix系統(tǒng)(如Linux)中非常有用的命令行工具,它用于將大文件分割成較小的片段。這對于處理大型日志文件、數(shù)據(jù)傳輸或存儲受限的情況特別有用。

二、split命令的使用幫助

2.1 split命令help幫助信息

在命令行終端中,我們使用--help查詢split命令的基本幫助信息。

root@jeven01:~# split --help
Usage: split [OPTION]... [FILE [PREFIX]]
Output pieces of FILE to PREFIXaa, PREFIXab, ...;
default size is 1000 lines, and default PREFIX is 'x'.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   generate suffixes of length N (default 2)
      --additional-suffix=SUFFIX  append an additional SUFFIX to file names
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of records per output file
  -d                      use numeric suffixes starting at 0, not alphabetic
      --numeric-suffixes[=FROM]  same as -d, but allow setting the start value
  -x                      use hex suffixes starting at 0, not alphabetic
      --hex-suffixes[=FROM]  same as -x, but allow setting the start value
  -e, --elide-empty-files  do not generate empty output files with '-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines/records per output file
  -n, --number=CHUNKS     generate CHUNKS output files; see explanation below
  -t, --separator=SEP     use SEP instead of newline as the record separator;
                            '\0' (zero) specifies the NUL character
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose           print a diagnostic just before each
                            output file is opened
      --help     display this help and exit
      --version  output version information and exit

The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

CHUNKS may be:
  N       split into N files based on size of input
  K/N     output Kth of N to stdout
  l/N     split into N files without splitting lines/records
  l/K/N   output Kth of N to stdout without splitting lines/records
  r/N     like 'l' but use round robin distribution
  r/K/N   likewise but only output Kth of N to stdout

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/split>
or available locally via: info '(coreutils) split invocation'

2.2 split命令選項(xiàng)解釋

下面是 split 命令的幫助信息翻譯成中文,并以Markdown表格的形式進(jìn)行整理:

選項(xiàng)描述
-a, --suffix-length=N生成長度為N的后綴(默認(rèn)為2)
--additional-suffix=SUFFIX在文件名后面追加額外的SUFFIX
-b, --bytes=SIZE每個(gè)輸出文件大小為SIZE字節(jié)
-C, --line-bytes=SIZE每個(gè)輸出文件最多包含SIZE字節(jié)的記錄
-d使用從0開始的數(shù)字后綴,而不是字母后綴
--numeric-suffixes[=FROM]與-d相同,但允許設(shè)置起始值
-x使用從0開始的十六進(jìn)制后綴,而不是字母后綴
--hex-suffixes[=FROM]與-x相同,但允許設(shè)置起始值
-e, --elide-empty-files當(dāng)使用’-n’時(shí),不生成空的輸出文件
--filter=COMMAND將內(nèi)容寫入shell命令COMMAND;文件名為$FILE
-l, --lines=NUMBER每個(gè)輸出文件包含NUMBER行/記錄
-n, --number=CHUNKS生成CHUNKS個(gè)輸出文件;詳情見下文
-t, --separator=SEP使用SEP作為記錄分隔符,而不是換行符;'\0’指定NUL字符
-u, --unbuffered在使用’-n r/…'時(shí)立即復(fù)制輸入到輸出
--verbose在打開每個(gè)輸出文件之前打印診斷信息
--help顯示幫助信息并退出
--version輸出版本信息并退出

SIZE 參數(shù)

  • SIZE參數(shù)是一個(gè)整數(shù)和可選單位(例如:10K表示10*1024)。
  • 單位可以是K, M, G, T, P, E, Z, Y(1024的冪)或KB, MB, …(1000的冪)。
  • 也可以使用二進(jìn)制前綴:KiB=K, MiB=M等。

CHUNKS 參數(shù)

  • N: 根據(jù)輸入的大小分割成N個(gè)文件
  • K/N: 將第K個(gè)輸出到標(biāo)準(zhǔn)輸出,總共N份
  • l/N: 不拆分行/記錄地分割成N個(gè)文件
  • l/K/N: 不拆分行/記錄地將第K個(gè)輸出到標(biāo)準(zhǔn)輸出,總共N份
  • r/N: 類似’l’,但是使用循環(huán)分配
  • r/K/N: 同上,但只輸出第K個(gè)到標(biāo)準(zhǔn)輸出

三、split命令的基本使用

3.1 生成測試文件

生成一個(gè)2M大小的測試文件

root@jeven01:/test# dd if=/dev/zero bs=1M count=2 of=test.file
2+0 records in
2+0 records out
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.00158099 s, 1.3 GB/s
root@jeven01:/test# ll -h test.file
-rw-r--r-- 1 root root 2.0M Oct  3 20:35 test.file

3.2 分割大小為200KB的小文件

使用-b選項(xiàng),將剛才創(chuàng)建的文件分割成大小為200KB的小文件:

root@jeven01:/test# split -b 200k test.file
root@jeven01:/test# ls
test.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak

3.3 切割為帶數(shù)字后綴的文件

使用-a與-d選項(xiàng),將大文件切割為帶數(shù)字后綴的小文件。

 root@jeven01:/test# split -b 200k test.file -d -a 3
root@jeven01:/test# ll
total 4104
drwxr-xr-x  2 root root    4096 Oct  3 20:42 ./
drwxr-xr-x 22 root root    4096 Sep 24 22:37 ../
-rw-r--r--  1 root root 2097152 Oct  3 20:35 test.file
-rw-r--r--  1 root root  204800 Oct  3 20:42 x000
-rw-r--r--  1 root root  204800 Oct  3 20:42 x001
-rw-r--r--  1 root root  204800 Oct  3 20:42 x002
-rw-r--r--  1 root root  204800 Oct  3 20:42 x003
-rw-r--r--  1 root root  204800 Oct  3 20:42 x004
-rw-r--r--  1 root root  204800 Oct  3 20:42 x005
-rw-r--r--  1 root root  204800 Oct  3 20:42 x006
-rw-r--r--  1 root root  204800 Oct  3 20:42 x007
-rw-r--r--  1 root root  204800 Oct  3 20:42 x008
-rw-r--r--  1 root root  204800 Oct  3 20:42 x009
-rw-r--r--  1 root root   49152 Oct  3 20:42 x010

3.4 按行數(shù)分割文件

按行數(shù)分割文件:將test.file 文件每1000行分割成一個(gè)新的文件,新文件名為 logs_part_aa, logs_part_ab 等等

split -l 1000 test.file logs_part_

3.5 定文件名的前綴

切割后的文件名后綴以000等依次命名,前綴使用split_file。

root@jeven01:/test# split -b 200k test.file -d -a 3 split_file
root@jeven01:/test# ll -h
total 4.1M
drwxr-xr-x  2 root root 4.0K Oct  3 20:57 ./
drwxr-xr-x 22 root root 4.0K Sep 24 22:37 ../
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file000
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file001
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file002
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file003
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file004
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file005
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file006
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file007
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file008
-rw-r--r--  1 root root 200K Oct  3 20:57 split_file009
-rw-r--r--  1 root root  48K Oct  3 20:57 split_file010
-rw-r--r--  1 root root 2.0M Oct  3 20:35 test.file

四、注意事項(xiàng)

1.確保日志文件完整性:當(dāng)按行數(shù)或字節(jié)數(shù)分割日志文件時(shí),請注意保持日志記錄的完整性。避免將一條完整的日志記錄拆分到兩個(gè)不同的文件中,這可能會導(dǎo)致日志分析時(shí)出現(xiàn)誤解??梢允褂?-C 選項(xiàng)來限制每個(gè)輸出文件的最大字節(jié)數(shù),同時(shí)盡量不拆分行。

2.合理選擇分割大小:根據(jù)您的存儲需求和日志處理策略,合理設(shè)置每個(gè)分割文件的大小。過大的文件可能導(dǎo)致處理不便,而過小的文件則會增加管理復(fù)雜度。例如,如果每天生成的日志量大約是50MB,那么可以考慮將文件分割成10MB左右的小塊。

3.使用合適的后綴命名規(guī)則:為了便于管理和識別,給分割后的文件設(shè)置清晰且有意義的前綴和后綴。通過 -a 選項(xiàng)指定后綴長度,并使用 -d 或 --numeric-suffixes 選項(xiàng)為文件添加數(shù)字后綴,這樣有助于按順序處理這些文件。

4.考慮時(shí)間戳信息:如果日志文件包含時(shí)間戳,確保在分割過程中保留這一重要信息。這有助于后續(xù)根據(jù)時(shí)間進(jìn)行快速定位和檢索??梢酝ㄟ^ -t 選項(xiàng)自定義記錄分隔符,以適應(yīng)不同格式的時(shí)間戳。

5.測試并驗(yàn)證結(jié)果:在正式應(yīng)用之前,先對少量樣本數(shù)據(jù)進(jìn)行分割測試,檢查輸出文件是否符合預(yù)期。確保所有配置正確無誤后再對完整日志執(zhí)行操作。這一步驟可以幫助您提前發(fā)現(xiàn)可能的問題并及時(shí)調(diào)整方案。

6.備份原始日志文件:在進(jìn)行任何切割操作之前,務(wù)必先備份原始日志文件。雖然 split 命令不會修改源文件,但備份可以防止意外刪除或其他人為錯(cuò)誤導(dǎo)致的數(shù)據(jù)丟失。

到此這篇關(guān)于Linux使用split切割日志文件的示例詳解的文章就介紹到這了,更多相關(guān)Linux split切割日志文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Ubuntu中apt和apt-get命令的區(qū)別

    詳解Ubuntu中apt和apt-get命令的區(qū)別

    在Ubuntu及其他基于Debian的Linux發(fā)行版中,軟件包管理是系統(tǒng)維護(hù)的一個(gè)重要方面,apt和apt-get是兩個(gè)常用的命令行工具,用于安裝、更新、刪除和管理軟件包,本文給大家介紹了Ubuntu中apt和apt-get命令的區(qū)別,需要的朋友可以參考下
    2024-06-06
  • Linux中禁止用戶修改/重置密碼

    Linux中禁止用戶修改/重置密碼

    這篇文章主要給大家介紹了關(guān)于在Linux中禁止用戶修改/重置密碼的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對大家具有一定的參考價(jià)值,需要的朋友們下面跟著小編一起來看看吧。
    2017-06-06
  • linux ubuntu中安裝、卸載和刪除python-igraph的方法教程

    linux ubuntu中安裝、卸載和刪除python-igraph的方法教程

    igraph是一個(gè)進(jìn)行圖計(jì)算和社交網(wǎng)絡(luò)分析的軟件包,支持python語言。下面這篇文章主要給大家介紹了關(guān)于在linux ubuntu中安裝、卸載和刪除python-igraph的方法教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-11-11
  • Centos7上網(wǎng)及添加靜態(tài)IP方法介紹

    Centos7上網(wǎng)及添加靜態(tài)IP方法介紹

    本文給大家詳細(xì)介紹了Centos7上網(wǎng)及添加靜態(tài)IP的方法,并把步驟做了詳細(xì)說明,需要的朋友跟著學(xué)習(xí)下。
    2018-02-02
  • Apache本地二級域名配置方法

    Apache本地二級域名配置方法

    這篇文章主要介紹了Apache本地二級域名配置方法,涉及hosts文件設(shè)置與Apache配置文件設(shè)置等相關(guān)技巧,需要的朋友可以參考下
    2016-05-05
  • 圖文詳解Linux服務(wù)器搭建JDK環(huán)境

    圖文詳解Linux服務(wù)器搭建JDK環(huán)境

    這篇文章主要以圖文結(jié)合的方式詳細(xì)介紹了Linux服務(wù)器搭建JDK環(huán)境的過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 阿里云linux服務(wù)器上使用iptables設(shè)置安全策略的方法

    阿里云linux服務(wù)器上使用iptables設(shè)置安全策略的方法

    這篇文章主要介紹了阿里云linux服務(wù)器上使用iptables設(shè)置安全策略的方法,需要的朋友可以參考下
    2016-10-10
  • 如何在Linux中的特定時(shí)間運(yùn)行命令

    如何在Linux中的特定時(shí)間運(yùn)行命令

    今天小編就為大家分享一篇關(guān)于如何在Linux中的特定時(shí)間運(yùn)行命令,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • Ubuntu 20.04換阿里源的方法

    Ubuntu 20.04換阿里源的方法

    這篇文章主要介紹了Ubuntu 20.04換阿里源的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux中出現(xiàn)“No space left on device”錯(cuò)誤的排查與解決方法

    Linux中出現(xiàn)“No space left on device”錯(cuò)誤的排查與解決方法

    這篇文章主要給大家介紹了關(guān)于在Linux中出現(xiàn)"No space left on device"錯(cuò)誤的排查與解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-09-09

最新評論