Linux之文本三剑客
Linux文本三剑客是指"grep"、"sed"、"awk"
1.grep 命令,负责从数据源当中检索过滤相关的内容
命令基本格式:grep 选项 需要检索的数据 文件
常见选项
点击查看代码
-i 不区分大小写检索
-n 显示行号
-r 递归检索
-v 查找不包含指定数据的内容行
^ 以什么开头
$ 以什么结尾,放指定内容后面
^$ 匹配空行
2.sed 命令,文本编辑工具,负责匹配内容并写入文件
查看命令基本格式:sed 选项 '匹配条件 动作' 文件名
编辑命令基本格式:sed -i '行号s#原内容#替换后内容#列号' 文件名
增加命令基本格式:sed -i '行号a\增加的内容' 文件名
删除命令基本格式:sed -i '行号d' 文件名
常见选项
点击查看代码
参数为空 表示sed的操作效果,实际上不对文件进行编辑,缓存区所有信息都显示
-n 不输出模式空间内容到屏幕,即不自动打印所有内容
-e 基于命令实现对文件的多点编辑操作
-f 从指定文件中读取编辑文件的”匹配条件+动作”
-r 支持使用扩展正则表达式
-i.bak 复制文件原内容到备份文件,然后对原文件编辑
-i 表示对文件进行编辑
常见动作
点击查看代码
-a[\text] 在匹配到的内容下一行增加内容,支持\n实现多行追加
-i[\text] 在匹配到的内容当前行增加内容
-c[\text] 在匹配到的内容替换内容
-d|p 删除|打印匹配到的内容
-s 替换匹配到的内容
W /path/somefile 保存模式匹配的行至指定文件
r /path/somefile 读取指定文件的文本至模式空间中
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
3.awk 命令,能以行为单位还能以列为单位处理文件,并且还具有格式化文本输出功能
命令基本格式:awk 选项 '动作' 文件名
常见选项
点击查看代码
-F 指定列的分隔符,默认一行数据的列分隔符是空格
-f file 指定读取程序的文件名
-v var=value 自定义变量
常见动作
点击查看代码
print 显示内容
$0 显示当前行所有内容
$n 显示当前行的第n列内容,如果存在多个$n,它们之间使用逗号(,)隔开
浙公网安备 33010602011771号