split命令
功能能说明:分割文件。
Split:按指定的行数截断文件
格式: split [-n] file [name]
参数说明:
-n: 指定截断的每一文件的长度,不指定缺省为1000行
file: 要截断的文件
name: 截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab....直到xzz
例1:
split -10 passwd ff
将文件 passwd 依次截断到名为ffaa,ffab,ffac.....的文件中,每一文件的长度为10行
[root@liyao mnt]# ls
ffaa ffab ffac ffad passwd
[root@liyao mnt]#
如果不加任何参数,默认情况下是以1000行大小来分割的。
例2:
例如在下面 split 命令行中的 “12m” 表示分割后的每个文件为 12MB,“passwd” 为待分割文件,分割后的文件自动命名
为 xaa,xab,…
passwd
[root@liyao mnt]# split -b 12m passwd
[root@liyao mnt]# ls
passwd xaa
[root@liyao mnt]#
uniq 命令
功能 :去除重复行
常用参数:
-uc 统计唯一行
-dc 统计重复行
之前我们介绍过uniq命令的用法,以下是uniq命令的三个例子,供大家参考。
例子,文本内容如下:
Happy Birthday to you!
Happy Birthday to you!
Happy Birthday to you!
My name is xxx!
1,uniq 去除重复行
Happy Birthday to you!
My name is xxx!
[root@xxx ~]#
2,统计唯一行
1 My name is xxx!
3,统计重复行
3 Happy Birthday to you!
[root@xxx ~]#
先来看命令paste。
paste将几个文件的相应行用制表符连接起来,并输出到标准输出。
paste [选项] file1 file2
-d 指定不同于空格或tab键的域分隔符。例如用#分隔域,使用-d#
-s 将每个文件合并成行而不是按行粘
paste -d# name.txt home.txt
再来看join命令。
join将两个文件中,指定栏位内容相同的行连接起来。
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-i 比较栏位内容时,忽略大小写的差异。
-o<格式> 按照指定的格式来显示结果。
-t<字符> 使用栏位的分隔字符。
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
-1<栏位> 连接[文件1]指定的栏位。
-2<栏位> 连接[文件2]指定的栏位。
下面举一些例子,以帮助大家的理解。
[root@xxx ~]# cat names
Tony
Emanuel
Lucy
Ralph
Fred
[root@xxx ~]# cat numbers
(307) 555-5356
(212) 555-3456
(212) 555-9959
(212) 555-7741
(212) 555-0040
2,将两个文件合并,中间用tab键分隔开。
[root@xxx ~]# paste names numbers
Tony (307) 555-5356
Emanuel (212) 555-3456
Lucy (212) 555-9959
Ralph (212) 555-7741
Fred (212) 555-0040
[root@xxx ~]# cat addresses
55-23 Vine Street, Miami
39 University Place, New York
17 E. 25th Street, New York
38 Chauncey St., Bensonhurst
17 E. 25th Street, New York
3,将 三个文件合并。
[root@xxx ~]# paste names addresses numbers
Tony 55-23 Vine Street, Miami (307) 555-5356
Emanuel 39 University Place, New York (212) 555-3456
Lucy 17 E. 25th Street, New York (212) 555-9959
Ralph 38 Chauncey St., Bensonhurst (212) 555-7741
Fred 17 E. 25th Street, New York (212) 555-0040
[root@xxx ~]# cat employee.txt
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
[root@xxx ~]# cat bonus.txt
100 $5,000
200 $500
300 $3,000
400 $1,250
[root@xxx ~]# join employee.txt bonus.txt
100 Jason Smith $5,000
200 John Doe $500
300 Sanjay Gupta $3,000
400 Ashok Sharma $1,250