文章名《2022山东省技能大赛样题解析(一)》
作者:小胡同学
文章链接:点击查看
评价:
小胡同学的文章详尽解析了2022年山东省技能大赛的样题,从IP地址规划到设备初始化信息,再到具体任务的实施步骤,内容丰富且实用。特别是在网络平台搭建和网络安全设备配置与防护方面,提供了非常详细的指导,如Telnet登录的授权信息设置、SNMPv3的安全配置以及VLAN的安全机制等,对于参赛者来说是不可多得的学习资料。文章结构清晰,逻辑性强,适合初学者和参赛选手参考学习。
split
是一个在Unix和类Unix系统(如Linux)中非常有用的命令行工具,它用于将大文件分割成较小的片段。这对于处理大型日志文件、数据传输或存储受限的情况特别有用。
在命令行终端中,我们使用
--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'
下面是 split
命令的帮助信息翻译成中文,并以Markdown表格的形式进行整理:
选项 | 描述 |
---|---|
| 生成长度为N的后缀(默认为2) |
| 在文件名后面追加额外的SUFFIX |
| 每个输出文件大小为SIZE字节 |
| 每个输出文件最多包含SIZE字节的记录 |
| 使用从0开始的数字后缀,而不是字母后缀 |
| 与-d相同,但允许设置起始值 |
| 使用从0开始的十六进制后缀,而不是字母后缀 |
| 与-x相同,但允许设置起始值 |
| 当使用'-n'时,不生成空的输出文件 |
| 将内容写入shell命令COMMAND;文件名为$FILE |
| 每个输出文件包含NUMBER行/记录 |
| 生成CHUNKS个输出文件;详情见下文 |
| 使用SEP作为记录分隔符,而不是换行符;'\0'指定NUL字符 |
| 在使用'-n r/...'时立即复制输入到输出 |
| 在打开每个输出文件之前打印诊断信息 |
| 显示帮助信息并退出 |
| 输出版本信息并退出 |
SIZE 参数
CHUNKS 参数
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
使用-b选项,将刚才创建的文件分割成大小为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
使用-a与-d选项,将大文件切割为带数字后缀的小文件。
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
按行数分割文件:将test.file 文件每1000行分割成一个新的文件,新文件名为 logs_part_aa, logs_part_ab 等等
split -l 1000 test.file logs_part_
切割后的文件名后缀以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
-C
选项来限制每个输出文件的最大字节数,同时尽量不拆分行。-a
选项指定后缀长度,并使用 -d
或 --numeric-suffixes
选项为文件添加数字后缀,这样有助于按顺序处理这些文件。-t
选项自定义记录分隔符,以适应不同格式的时间戳。split
命令不会修改源文件,但备份可以防止意外删除或其他人为错误导致的数据丢失。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。