本期实战训练营,给我影响最深的还是关于文本处理的命令章节。
在日常工作中,作为运维最常用到的就是三剑客,而根据指引学习,可以更加明确每个指令的作用和用法。
grep
文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查,打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
--color=auto 高亮显示
-i:忽略大小写
-o:只显示匹配到的行
-w:匹配整个单词(数字字母下划线算单词一部分)
-v:只显示不被模式匹配到的行
-n:显示行号
-c:统计匹配到的行数
-e:多个选项之间是逻辑或or关系
-q:静默模式,不显示任何信息
-A #:After,前#行
-B #:Before,后#行
-C #:Context,前后#行
sed
便捷查看及修改文件
sed [OPTION]... 'script' inputfile...
-n:不输出模式空间内容到屏幕
-e:多点编辑
-f /path/to/script_file:从指定文件中读取编辑脚本
-r:支持使用扩展正则表达式
-i.bak:备份文件并原处编辑
编辑命令
d:删除模式空间匹配到的行
p:打印当前模式空间内容,追加到默认输出之后
a[\]text:在指定行后面追加文本
\n可追加多行
i[\]text:在行前面插入文本
c[\]text:替换为单行或多行文本
w /path/somefile:
r /path/somefile:
=:显示模式匹配到的行号
!:模式匹配空间中匹配到的行取反
查找替换
s///,支持使用其它分隔符 如s@@@ s###等
替换标记:
g:行内全局替换
p:显示替换成功的行
w /path/to/somefile:将替换成功的行保存至文件
awk
报告生成器,格式化文本输出
awk [options] 'program' file…
program:pattern{action statements;..}
pattern部分决定动作语句何时触发及触发事件
BEGIN,END
action statements对数据进行处理,放在{}内指明
print, printf
选项:
-F 指明输入时用到的字段分隔符
-v var=value 自定义变量
分割符、域和记录
awk执行时,由分隔符分隔的字段(域)标记1,1,2..n称为域标识,n称为域标识,0为所有域。
省略action,则默认执行 print $0 的操作。