标签:header 读取文件 反选 分割 container 逆向 文件名 保存到文件 ctrl+h
sort命令、uniq命令、join命令、cut命令、paste命令、split命令、tr命令和tar命令,能够实现对文件记录排序、统计、合并、提取、粘贴、分隔、过滤、压缩和解压等功能。
定义
sort命令将输入文件看做由多条记录组成的数据流,而记录由可变宽度的字段组成,以换行符作为定界符。
说明
语法
sort [选项] [输入文件]
sort命令选项及其意义
选项 | 意义 |
---|---|
-c | 测试文件是否已经被排序 |
-k | 指定排序的域 |
-m | 合并两个已排序的文件 |
-n | 根据数字大小进行排序 |
-o [输出文件] | 将输出写到指定的文件,相当于将输出重定向到指定文件 |
-r | 将排序结果逆向显示 |
-t | 改变域分隔符 |
-u | 去除结果中的重复行 |
sort命令的用法
-t选项
sort命令分域对文件进行排序,默认的域分隔符是空格符,-t选项可用于设置分隔符。
sort -t: filename
# -t与":"之间没有空格
# sort命令默认根据第1域对数据记录进行排序,如果第1域相同,再根据第2域排序,以此类推
# 当未指定-t时,分隔符是空格符,这时记录内开头与结尾的空格都将被忽略
# 当用-t选项改变分隔符时,空格符变得有意义
-k选项
-k选项指定排序的域。
sort命令以1表示第1域、以2表示第2域,依次类推。
sort -t: -k3 /etc/passwd
# -k和3之间也没有空格
-n选项
-n选项可以指定根据数字大小进行排序
sort -t: -k3n /etc/passwd
# -n选项不单独使用,一般放在域号之后
-r选项
-r选项用于将排序结果逆向显示
sort -t: -k3nr /etc/passwd
# 利用-k3n选项将/etc/passwd文件的第3域从小到大排序,然后用-r选项将结果逆向显示
-u选项
-u选项用于去除排序结果中的重复行
sort -t: -u
-o选项
sort命令默认将排序后的结果输出到屏幕上
sort -t: -k1n -o outfile /etc/passwd
-c选项
-c选项用于测试文件是否已经排好序
sort -t: c /etc/passwd
-m选项
-m选项用于将两个排好序的文件合并成一个排好序的文件
在文件合并前,他们必须已经排好序
sort -t: m filename1 filename2
uniq命令用于去除文本文件中的重复行。
uniq命令选线及其意义
选项 | 意义 |
---|---|
-c | 打印每行在文本中重复出现的次数 |
-d | 只显示有重复的记录,每个重复记录只出现一次 |
-u | 只显示没有重复的记录 |
语法
uniq -c /etc/passwd
join命令用于实现两个文件中记录的连接操作,即连接操作将两个文件中具有相同域的记录选择出来,再将这些记录所有的域放到一行(包含来自两个文件的所有域);
join命令在对两个文件进行连接时,两个文件必须都是按照连接域排好序的,按其他域排序无效。
语法
join [选项] 文件1 文件2
join命令选项及其意义
选项 | 意义 |
---|---|
-a1或-a2 | 除了显示以共同域进行连接的结果外,-a1表示还显示第1个文件中没有共同域的记录,-a2则表示显示第2个文件中没有共同域的记录 |
-i | 比较域内容时,忽略大小写差异 |
-o | 设置结果显示的格式 |
-t | 改变域分隔符 |
-v1或-v2 | 与-a选项类似,但是,不显示以共同域进行连接的结果 |
-1和-2 | -1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域 |
说明
-a和-v选项的区别在于
-a选项显示以共同域进行连接的结果,而-v选项则不显示这些记录
join命令的结果默认不显示未进行连接的记录,即默认显示连接记录在两个文件中的所有域,而且是按顺序来显示的。
-o选项用于改变结果显示的格式,可指定显示哪几个域、按什么顺序显示这些域
join -t: -o1.1 2.2 1.2 filename1 filename2
join命令默认比较文件1和文件2的第1域,当需要通过其他域进行连接,可使用-1和-2选项,-1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域
join -t: -i -1 3-2 1 filename1 filename2
# 以文件1的第3域和文件2的第1域进行连接,并忽略大小写
定义
cut命令用于从标准输入或文本文件中按域或行提取文本
语法
cut [选项] 文件
cut命令选项及其意义
选项 | 意义 |
---|---|
-c | 指定提取的字符数或字符范围 |
-f | 指定提取的域数或域范围 |
-d | 改变域分隔符 |
示例
cut -c3 /etc/passwd
cut -c1-5 /etc/passwd
# -c后跟数字表示字符数或字符范围,共3种表示方式
(1) -cn表示第n个字符
(2) -cn,m表示第n个字符和第m个字符
(3) -cn-m表示第n个字符到第m个字符
cut -d: -f1,4 /etc/passwd
# 提取第1,4域
cut -d: -f1-4 /etc/passwd
# 提取第1~4域
说明
cut命令灵活提取文本文件中的内容,它默认将提取的内容放到标准输出上,如果要将提取的内容保存到文件,可以使用文件重定向来实现。
定义
paste命令用于将文本文件或标准输出中的内容粘贴到新的文件,它可以将来自不同文件的数据粘贴到一起,形成新的文件。
语法
paste [选项] 文件1 文件2
paste命令选项及其意义
选项 | 意义 |
---|---|
-d | 默认域分隔符是空格或tab键,设置新的域分隔符 |
-s | 将每个文件粘贴成一行 |
- | 从标准输入中读取数据 |
说明
paste命令不同于sort、join和cut命令改变域分隔符都是为了按域读取文件内容,paste命令改变域分隔符是用于设置输出文件的格式。
示例
paste -d: filename1 filename2
定义
split命令用于将大文件切割成小文件,split命令可以按照文件的行数、字节数切割文件,并能在输出的多个小文件中自动加上编号
语法
split [选项] 待切割的大文件 输出的小文件
选项及其意义
选项 | 意义 |
---|---|
-或-l | 此两个选项等价,都用于指定切割成小文件的行数 |
-b | 指定切割成小文件的字节 |
-C | 与-b选项类似,但是,切割时尽量维持每行的完整性 |
示例
# 每2行进行切割,输出文件的以小文件名字开头命名
split -2 /etc/passwd
--说明
- 由于小文件有多个,split命令在小文件名后面自动加上编号以区分不同的小文件,编号为aa~zz
- split命令所切割生成的小文件最多包含1000行记录
# 按每100B切割成小文件
split -b100 /etc/passwd
--说明
- 当split命令不指定小文件的名字时,将自动以x开头、aa~zz为编号对这些小文件进行命名
- split命令-b选项在切割文件时仅考虑了文件大小,未考虑记录的完整性
定义
tr命令实现字符转换功能,其功能类似于sed命令
语法
tr [选项] 字符串1 字符串2 <输入文件
选项及其意义
选项 | 意义 |
---|---|
-c | 选定字符串1中字符集的补集,即反选字符串1中的字符集 |
-d | 删除字符串1中出现的所有字符 |
-s | 删除所有重复出现的字符序列,只保留一个 |
说明
示例
tr -d a-z </etc/passwd
# 删除/etc/passwd中所有的小写字母
tr -d 0-9 </etc/passwd
# 删除/etc/passwd中所有的数字
tr -d "[\n]" </etc/passwd
tr命令支持正则表达式的一部分以及POSIX字符类
选项 | 意义 | 八进制方式 |
---|---|---|
\a | Ctrl+G 铃声 | \007 |
\b | Ctrl+H 退格符 | \010 |
\f | Ctrl+L 走换行页 | \014 |
\n | Ctrl+J 换行符 | \012 |
\r | Ctrl+M 回车键 | \015 |
\t | Ctrl+I Tab键 | \011 |
# tr -s 能将重复出现的字符串压缩为一个字符
# 空白行可以看做该行只有一个换行符而无其他任何字符
tr -s "[\n]" </etc/passwd
# 将所有重复的字母压缩成一个
tr -s "[a-z],[A-Z]" </etc/passwd
# tr命令加上字符串1和字符串2,将字符串1用字符串2来替换
tr "[a-z]" "[A-Z]" </etc/passwd
tr "[:lower:]" "[:upper:]" </etc/passwd
# 将不在"[a-z][A-Z]"字符集内的字符替换为换行符
# 然后-s选项将重复出现的换行符压缩成一个
tr -cs "[a-z][A-Z]" "[\012*]" </etc/passwd
定义
tar命令实现了Linux系统文件的压缩和解压缩
语法
tar [选项] 文件名或目录名
选项及其意义
选项 | 意义 |
---|---|
-c | 创建新的包 |
-r | 为包添加新的文件 |
-t | 列出包内容 |
-u | 更新包中的文件,若包中无此文件,则将该文件添加到包中 |
-x | 解压缩文件 |
-f | 使用压缩文件或设备,该选项通常是必选的 |
-v | 详细报告tar处理文件的信息 |
-z | 用gzip压缩和解压缩文件,若加上此选项创建压缩包,那么解压缩时也需要加上此选项 |
说明
#gzip -d 能将tar.gz文件还原为.tar文件,gzip -d解压缩压缩文件而得到包
gazip -d db.tar.gz
标签:header 读取文件 反选 分割 container 逆向 文件名 保存到文件 ctrl+h
原文地址:https://www.cnblogs.com/nuochengze/p/14417970.html