.join的用法
join用来将来自两个分类文本文件的行连在一起。如果学过 S Q L语言,可能会很熟悉join命令。
join的一般格式为:
join [option] input-file1 input-file2
an n 为一数字,用于连接时从文件n中显示不匹配行。例如,-a1显示第一个文件的不匹配行,-a2为从第二个文件中显示不匹配行。
o n.m n 为文件号, m为域号。1.3表示只显示文件1第三域,每个n,m必须用逗号分隔,如1.3,2.1。
j n m n为文件号, m为域号。使用其他域做连接域。
t 域分隔符。用来设置非空格或tab键的域分隔符。例如,指定冒号做域分隔符t:。
首先建立sex.txt 内容如下
Jack m
Smith f
Wang m
Xin f
Zohn g
在建立age.txt 内容如下
Jack 12
Smith 34
Wang 35
Xin 44
Zohn 47
当两个文件不匹配连接时
join -a1 sex.txt age.txt
显示第一个文件的第一个域 和第二个文件的第二个域
join -o 1.1,2.2 sex.txt age.txt
4.cut的用法
cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。下一节将介绍粘贴用法。
cut的一般格式为:
cut [option] file1 file2
-c list 指定剪切字符数。
-f field 指定剪切域数。
-d 指定与空格和tab键不同的域分隔符。
-c用来指定剪切范围,如下所示:
-c1,5-7 剪切第1个字符,然后是第 5到第7个字符。
-c1-50 剪切前50个字符。
-f 格式与-c相同。
-f 1,5 剪切 第1域,第5域。
-f1,10-12 剪切第1域,第10域到第12域。
首先建立part.txt
Dept1:ID123:5:years
Detp2:ID345:6:years
Dept3:ID780:5:years
查看第三个域的数据
cut -d: -f3 part.txt
查看第一和第三个域
cut -d: -f1,3 part.txt
抽取信息
who -u | cut -c1-8
5.paste用法
cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴
起来形成相关文件。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相
同。paste将按行将不同文件行信息放在一行。缺省情况下,paste连接时,用空格或tab键分隔新行中不同文本,除非指定 -d选项,它将成为域分隔符。
paste的一般格式为:
paste -d -s -file1 file2
-d 指定不同于空格或 tab键的域分隔符。例如用 @分隔域,使用-d@。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如 ls -l |paste ,意即只在一列上显示输出。
6.split的用法
split用法
split用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可
能更容易。使用vi或其他工具诸如 sort时,如果文件对于工作缓冲区太大,也会存在一些问题。
因此有时没有选择余地,必须将文件分割成小的碎片。
split命令一般格式:
split -output_file-size input-filename output-filename
这里output -file -size指的是文本文件被分割的行数。split查看文件时, output- file -size选项指定将文件按每个最多 1000行分割。如果有个文件有 2800行,那么将分割成 3个文件,分别有1000、1000、800行。每个文件格式为 x[aa]到x[zz],x为文件名首字母, [aa]、[zz]为文件名剩余部分顺序字符组合
join用来将来自两个分类文本文件的行连在一起。如果学过 S Q L语言,可能会很熟悉join命令。
join的一般格式为:
join [option] input-file1 input-file2
an n 为一数字,用于连接时从文件n中显示不匹配行。例如,-a1显示第一个文件的不匹配行,-a2为从第二个文件中显示不匹配行。
o n.m n 为文件号, m为域号。1.3表示只显示文件1第三域,每个n,m必须用逗号分隔,如1.3,2.1。
j n m n为文件号, m为域号。使用其他域做连接域。
t 域分隔符。用来设置非空格或tab键的域分隔符。例如,指定冒号做域分隔符t:。
首先建立sex.txt 内容如下
Jack m
Smith f
Wang m
Xin f
Zohn g
在建立age.txt 内容如下
Jack 12
Smith 34
Wang 35
Xin 44
Zohn 47
当两个文件不匹配连接时
join -a1 sex.txt age.txt
显示第一个文件的第一个域 和第二个文件的第二个域
join -o 1.1,2.2 sex.txt age.txt
4.cut的用法
cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。下一节将介绍粘贴用法。
cut的一般格式为:
cut [option] file1 file2
-c list 指定剪切字符数。
-f field 指定剪切域数。
-d 指定与空格和tab键不同的域分隔符。
-c用来指定剪切范围,如下所示:
-c1,5-7 剪切第1个字符,然后是第 5到第7个字符。
-c1-50 剪切前50个字符。
-f 格式与-c相同。
-f 1,5 剪切 第1域,第5域。
-f1,10-12 剪切第1域,第10域到第12域。
首先建立part.txt
Dept1:ID123:5:years
Detp2:ID345:6:years
Dept3:ID780:5:years
查看第三个域的数据
cut -d: -f3 part.txt
查看第一和第三个域
cut -d: -f1,3 part.txt
抽取信息
who -u | cut -c1-8
5.paste用法
cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴
起来形成相关文件。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相
同。paste将按行将不同文件行信息放在一行。缺省情况下,paste连接时,用空格或tab键分隔新行中不同文本,除非指定 -d选项,它将成为域分隔符。
paste的一般格式为:
paste -d -s -file1 file2
-d 指定不同于空格或 tab键的域分隔符。例如用 @分隔域,使用-d@。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如 ls -l |paste ,意即只在一列上显示输出。
6.split的用法
split用法
split用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可
能更容易。使用vi或其他工具诸如 sort时,如果文件对于工作缓冲区太大,也会存在一些问题。
因此有时没有选择余地,必须将文件分割成小的碎片。
split命令一般格式:
split -output_file-size input-filename output-filename
这里output -file -size指的是文本文件被分割的行数。split查看文件时, output- file -size选项指定将文件按每个最多 1000行分割。如果有个文件有 2800行,那么将分割成 3个文件,分别有1000、1000、800行。每个文件格式为 x[aa]到x[zz],x为文件名首字母, [aa]、[zz]为文件名剩余部分顺序字符组合
对于后面几个指令 大家可以自学下
参考书籍:shell脚本学习