shell好用工具

cut

可以切割提取指定的列、字节、字符数据。是一个强大的文本处理工具;cut命令逐行读取文本,然后按列划分并进行提取、输出等操作

cut [option] filename 
option 说明
-f 提取范围,按照列号
-d 自定义分隔符,默认为制表符
-c 一字符为单位进行 分割
-b 以字节为单位进行分割
-n -b联用,不分割多字节字符;

提取范围说明

提取范围 说明
n- 提取指定第n列或字符等后面的数据
n-m 提取指定第n列到第m列或字符等的数据
-m 提取指定到第m列或字符等的数据
n1,n2 指定枚举列

sed命令(stream editor 流编辑器)

编辑文件,替换文件中的单词,

编写在文件中插入或者修改sed程序

使用sed作为过滤器,来过滤管道命令;

可以对文件的没一行数据匹配查询后进行增删改查,一次处理一行内容,将这行放入缓冲区,然后才进行处理,处理完后将缓冲区内容发送到终端

image-20231107154610163

sed [选项参数] [模式匹配/sed命令程序] [文件名]
模式匹配 ,会读取一行数据到模式空间,之后判断当前行是否符合模式匹配要求,符合要求就会执行;
sed 程序命令,否则不会执行sed程序命令;不写匹配模式,那么每一行都会执行sed程序命令

选项参数

参数 说明
-e 直接在sed指令模式上进行sed动作编辑
-i 直接对内容进行修改
-f 后为保存了sed指令的文件
-n 取消默认输出,sed默认会输出所有文本内容
-r 使用扩展正则表达

awk命令

就是把文件逐行读入,以空格为默认分隔符将每一行进行切片,切开的部分再进行各种分析处理,

awk [options] pattern{action} {filenames}

-F 可以指定输入文件的拆分分割符

-v 可以赋值一个用户定义变量

sort 命令

  • 对字符串进行升序降序排序;对数字升序,降序;对多列升序降序
sort (options) 参数

-n namber 依照数值大小排序

-r reverse,以相反的顺序排序;

-t 分割字符 设置排序时用到的分割字符,默认是分隔符;

-k 指定需要排序的列;

-o 输出文件,将排队后的结果存入指定的文件

-u 去重复