uniq命令用于检查及删除文本文件中重复出现的行列。
uniq可检查文本文件中重复出现的行列。
语法
uniq[-cdu][-f][-s][-w][--help][--version][输入文件][输出文件]
参数:
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f或--skip-fields= 忽略比较指定的栏位。
-s或--skip-chars= 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w或--check-chars= 指定要比较的字符。
--help 显示帮助。
--version 显示版本信息。
[输入文件] 指定已排序好的文本文件。
[输出文件] 指定输出的文件。
实例
文件testfile中第2 行、第5 行、第9 行为相同的行,使用uniq 命令删除重复的行,可使用以下命令:
uniq testfile
testfile中的原有内容为:
$ cat testfile#原有内容
test30
test30
test30
Hello95
Hello95
Hello95
Hello95
Linux85
Linux85
使用uniq 命令删除重复的行后,有如下输出结果:
$ uniq testfile#删除重复行后的内容
test30
Hello95
Linux85
sort命令用于将文本文件内容加以排序。
sort可针对文本文件的内容,以行为单位来排序。
语法
sort[-bcdfimMnr][-o][-t][+-][--help][--verison][文件]
参数说明:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t 指定排序时所用的栏位分隔字符。
+- 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息。
实例
在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:
sort testfile
sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。
使用 cat命令显示testfile文件可知其原有的排序如下:
$ cat testfile#testfile文件原有排序test30Hello95Linux85
使用sort命令重排后的结果如下:
$ sort testfile#重排结果Hello95Linux85test30
csplit命令用于分割文件。
将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02...的文件。若给予的文件名称为"-",则csplit指令会从标准输入设备读取数据。
语法
csplit[-kqsz][-b][-f][-n][--help][--version][文件][范本样式...]
参数:
-b或--suffix-format= 预设的输出格式其文件名称为xx00,xx01...等,您可以通过改变来改变输出的文件名。
-f或--prefix= 预设的输出字首字符串其文件名为xx00,xx01...等,如果你指定输出字首字符串为"hello",则输出的文件名称会变成hello00,hello01...等。
-k或--keep-files 保留文件,就算发生错误或中断执行,也不能删除已经输出保存的文件。
-n或--digits= 预设的输出文件名位数其文件名称为xx00,xx01...等,如果你指定输出文件名位数为"3",则输出的文件名称会变成xx000,xx001...等。
-q或-s或--quiet或--silent 不显示指令执行过程。
-z或--elide-empty-files 删除长度为0 Byte文件。
--help 在线帮助。
--version 显示版本信息。
实例
将文本文件testfile以第 2 行为分界点切割成两份,使用如下命令:
csplit testfile2
testfile文件中的内容如下:
$ cat testfile#查看testfile 文件内容helloLinux!Linuxisa freeUnix-type operating system.ThisisaLinuxtestfile!Linux
使用csplit命令,输出结果如下:
$ csplit testfile213#xx00文件字符个数76#xx01文件字符个数
scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
语法
scp[-1246BCpqrv][-c cipher][-F ssh_config][-i identity_file][-l limit][-o ssh_option][-P port][-S program][[user@]host1:]file1[...][[user@]host2:]file2
简易写法:
scp[可选参数]file_source file_target
参数说明:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
实例
1、从本地复制到远程
命令格式:
scp local_file remote_username@remote_ip:remote_folder或scp local_file remote_username@remote_ip:remote_file或scp local_file remote_ip:remote_folder或scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
实例:
split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
语法
split[--help][--version][-][-b][-C][-l][要切割的文件][输出文件名]
参数说明:
- : 指定每多少行切成一个小文件
-b : 指定每多少字节切成一个小文件
--help : 在线帮助
--version : 显示版本信息
-C : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
[输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
实例
使用指令"split"将文件"README"每6行切割成一个文件,输入如下命令:
$ split-6README#将README文件每六行分割成一个文件
以上命令执行后,指令"split"会将原来的大文件"README"切割成多个以"x"开头的小文件。而在这些小文件中,每个文件都只有6行内容。
使用指令"ls"查看当前目录结构,如下所示:
$ ls#执行ls指令#获得当前目录结构
README xaa xad xag xab xae xah xac xaf xai
cmp命令用于比较两个文件是否有差异。
当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则cmp指令会从标准输入设备读取数据。
语法
cmp[-clsv][-i][--help][第一个文件][第二个文件]
参数:
-c或--print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i或--ignore-initial= 指定一个数目。
-l或--verbose 标示出所有不一样的地方。
-s或--quiet或--silent 不显示错误信息。
-v或--version 显示版本信息。
--help 在线帮助。
实例
要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ:char4,line1
领取专属 10元无门槛券
私享最新 技术干货