shell常见命令

  • sort
    • 演示
  • uniq
    • 练习
  • paste
    • 演示:
  • cut
    • 演示
  • xargs
    • 演示
  • sed
    • 用法
    • 模式空间与保持空间
    • sed高级命令
  • awk
    • BEGIN与END
    • 演示
  • print

sort

sort:将文件每一行作为单位,对文件进行排序,依次比较ASCII码值。默认升序排列。
-r:逆序排列
-c:判断文件是否有序,若无序,输出错误信息,并返回1
-C:判断文件是否有序,若无序,不输出内容,返回1
-b:忽略文件每一行前面空白部分
-n:按数值进行排序
-t:指定分隔符
-k:指定列数:
-u:输出去除重复行

演示

shell常见命令_第1张图片

uniq

-u:显示不重复的行
-d:显示重复行
-c:在每一行前加本行在文件中出现的次数

练习

使用sort与uniq求文件的交集,并集,差集

shell常见命令_第2张图片

并集:file1与file2合并
shell常见命令_第3张图片
交集:file1与file2共同拥有的部分
这里写图片描述
差集:file1-file2
这里写图片描述

paste

paste:将多个文件内容合并,按行将不同文件信息合并到一行,链接时,使用空格或tab键分个新行中不同文本
-d:指定域分隔符
-s:将每个文件合并成行不是按行粘贴
-:从标准输入读取一次数据,默认使用空格或tab进行分割,该选项控制输出格式

演示:

shell常见命令_第4张图片

cut

cut:将文件中指定行剪至标准输出
-b:以字节为单位进行分割
-c:以字符为单位进行分割
-d:自定义分隔符
-f:指定显示哪一区域

演示

shell常见命令_第5张图片

xargs

xargs:给其他命令传输参数的一个过滤器,组合多个命令的工具,将标准输入数据转换成命令行参数,xargs可处理管道或标准输入转换为特定命令的命令参数,也可将单行或多行文本的输入转换为其他格式,如多变单,单变多,默认命令是echo,空格是默认定界符,即同过管道传递给xargs的输入会包含换行和空白,通过处理,将被取代。
-n:指定列数,并多行输出
-d:指定域分隔符
-I:指定替换字符串{},每一个参数命令会被执行一次

演示

shell常见命令_第6张图片

sed

sed:流编辑器,不会修改原文件。处理时,将当前处理的行存储在临时缓冲区中,称为“模式空间,接着使用sed处理缓冲区的内容,处理完后,将缓冲区内容送至屏幕,不断重复直至文件结束。sed用来自动编辑一个或多个文件简化对文件的反复操作,编写转换程序等功能
命令格式:sed [options] ‘command’ file(s)
sed [options] -f scriptfile file(s)

用法

/pattern/p :打印匹配pattern的行,连同待处理的内容一起输出,使用-n去除
/pattern/d:删除匹配的行,只是将其不显示不是删除原文件内容,若要删除,-i选项
/pattern/s/pattern1/pattern2/:查找符合pattern的行,将该行第一个匹配的pattern1换为pattern2
/pattern/s/pattern1/pattern2/g:查找符合pattern的内容,该行所有匹配pattern1的内容替换为pattern2
\(…\):匹配子串,匹配的第一个字串标记为\1,以此类推

模式空间与保持空间

sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,直到脚本执行完毕。然后该行被输出,模式(pattern space)被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕。 一般情况下,数据的处理只使用模式空间.
模式空间:可看做工厂的流水线,数据直接在上面处理
保持空间:可看做仓库,数据的暂存区,正常情况下,如果不显示使用某些高级命令,保持空间不会使用

sed高级命令

g:将保持空间的内容拷贝到模式空间,原模式空间的内容清除
G:将保持空间的内容追加到模式空间
h:与g相反
H:与G相反
d:删除模式中的所有行,并读入下一新行到模式中
D:删除多行中的第一行,不读入下一行
x:交换模式空间与保持空间的内容
N:将下一行添加到模式空间内
n:读取下一行到模式空间内

awk

sed以行为单位进行处理文件,awk行列均可以,缺省行分隔符为换行,列分隔符为空格或tab键,awk处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入,编辑命令可以直接当命令行参数传入,也可以用-f参数指定一个脚本文件。
命令格式:/pattern/{actions} pattern为正则表达式,actions为一系列操作
condition{actions}
awk的分隔符: -F指定

BEGIN与END

用作文本处理前的准备工作,之后的收尾工作
格式:
BEGIN{}/REG/{} END{}常用来显示变量的初始化
BEGIN{} condition{} END{] 用来显示最终结果

演示

shell常见命令_第7张图片
shell常见命令_第8张图片

print

print输出符合正则表达式的结果行,$0表示整条记录,$1,$2表示指定域

你可能感兴趣的:(Linux)