三者之间的联系和区别
1、都是对文本进行逐行处理
2、grep更强调查找功能、sed可以行进行修改和其他处理、awk对每行的列进行处理
单独介绍用法并有实战
三剑客之grep
语法:grep [option] pattern file
grep -i '^test' /etc/passwd
一些常用参数选项
-i, --ignore-case | 忽略大小写的不同 |
-v --invert-match | 对搜寻的条件匹配相反的内容 |
-c, --count | 对搜寻的条件统计符合的个数 |
-n, --line-number | 显示行号 |
grep -E / egrep | 匹配复杂的正则表达式 |
三剑客之sed
sed属于流处理器,一次处理一行数据,ta在模式空间里对文本进行处理,不对原文本进行修改
语法:sed [-hni...] [ -e 'script' ] [-f 'script'] [file]
-e 'script' | 是指指定要执行的脚本 |
一些常用的指令参数
a 代表新增 | |
c 代表取代 | |
d 代表删除 | |
i 代表插入 | |
s 代表取代 | |
sed 直接修改原文本内容命令可以使用
sed -i 's/old_string/new_string/g' file
三剑客之awk
awk把文件逐行读入,以空格为默认分隔符将每行进行切片,再将切开的部分进行后续处理。
语法:awk 'pattern + action' file
一些常见参数
BEGIN | 处理文本之前要执行的操作 |
END | 处理文本之后要执行的操作 |
FS | 设置输入域分隔符,等价于-F 选项 |
$0 | 整条记录 |
$1 | 表示当前行的第一个域 |
awk -F: 'BEGIN{print "let us start "} {print$0}' /etc/passwd
for循环一句话命令:
for i in $(kubectl get pod -n namespace | awk '{print $2}');do kubectl delete pod $i -n namespace; done