linux常用命令[grep,awk,sed]
grep,awk,sed 主要用于文本处理,编辑查找分析。。。 最近接手遗留项目,针对眼花撩乱的命名规则以及飞来飞去的方法调用,通过grep搜索方法,通过sed 规范方法名。。。
以前做DNS项目实施的时候,通过awk对DNS配置文件进行数据整理导入系统,节省运维时间,避免手动处理错误。。。 很强大的三个命令,只记录常用操作,后期补充。。。
grep 命令
grep 主要用于查找文件,是一种强大的文本搜索工具。实际上只使用 -rn 参数。。。
常用参数
-r 递归查询指定的目录
-n 现实匹配行和行号
-v 现实不包含匹配文本的行
-i 忽略字符大小写,默认区分大小写
-l 列出文件内容符合指定的范本样式的文件名称
-L 列出文件内容不符合指定的范本样式的文件名称
--color=auto 标记匹配颜色
example:
grep `passwd` a.txt //搜索文件中包含passwd
grep `passwd` a.txt b.txt //搜索文件中包含passwd,支持添加多个文件
grep `passwd` *.txt
grep -i `Passwd` a.txt //忽略大小写
grep `^passwd` a.txt 匹配正则表达式的开始行
grep `^passwd` a.txt --color=auto 标记匹配颜色
grep -rn "passwd" /opt 递归查询目录下包含passwd的文档。并显示匹配行和行号
awk 命令
awk命令主要做数据处理。固定格式的数据将其中需要的数据重新组合。下面的例子是将原始ip库中的ip段 和所属国家地区重新组合。。。
awk -F "," '{print $3"-"$6"-"$7}' ip.txt
参数:
-F 指定分隔符,如果不指定 默认使用空格分隔
$0 表示整个当前行
$1 每行第一个字
原始数据:
38385,223.255.0.0,223.255.63.255,3758030848,3758047231,中国,北京,北京,电信通
38386,223.255.64.0,223.255.127.255,3758047232,3758063615,中国,北京,北京,""
38387,223.255.128.0,223.255.147.129,3758063616,3758068609,中国,香港,"",""
38388,223.255.147.131,223.255.191.255,3758068611,3758079999,中国,香港,"",""
38389,223.255.236.0,223.255.239.255,3758091264,3758092287,中国,上海,上海,""
38390,223.255.240.0,223.255.243.255,3758092288,3758093311,中国,香港,"",""
38391,223.255.252.0,223.255.253.255,3758095360,3758095871,中国,福建,"",电信
处理后数据:
223.255.0.0-223.255.63.255-中国-北京
223.255.64.0-223.255.127.255-中国-北京
223.255.128.0-223.255.147.129-中国-香港
223.255.147.131-223.255.191.255-中国-香港
223.255.236.0-223.255.239.255-中国-上海
223.255.240.0-223.255.243.255-中国-香港
223.255.252.0-223.255.253.255-中国-福建
sed 命令
sed命令理解为批量文本处理程序。
sed -i "" 's/gophper.com/www.gophper.com/g' *.go //替换go文件中所有gophper.com为www.gophper.com,如果
sed -i "" 's#http://www.gophper.com#https://gophper.com#g' *.go //如果替换比对的字符里面包含\可以使用#作为新的分割符