shell三剑客
grep
egrep | grep -E :支持正则表达式的拓展元字符
fgrep | grep -F :输入的任何东西都当成一个字符串处理
grep -r :递归查找
grep -o :准确只打印过滤内容
grep -v :取反
sed
语法:sed 参数 模式
常用于进行文本替换
参数:
-f :指定规则文件
-n :组织输入行输出
-r :扩展正则
-i.back :修改文件本身,并备份
模式:
s——替换
g——整行
d——删除
sed '2,$d' :删除第2行到最后一行
sed '1~2d' :删除奇数行
sed '2~2d' :删除偶数行
sed '/^$/d' :删除空行
p——打印
a——向下追加 # sed '/^bin/a\hello'
i——向上插入 # sed '/^bin/i\hello'
awk
行处理器,处理庞大文件时,不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
处理过程:一次对每一行进行处理,然后输出分隔符是空格或tab
语法:awk 参数 模式
awk 参数 'BEGIN{处理前做}{处理内容}END{处理了之后的内容}'
参数
FS | -F :输入字段分隔符
OFS :输出字段分隔符
NR :记录编号
FNR :按不同文件分开记录编号
NF :标识字段数量,相当于行号
RS :输入记录分隔符 #awk 'BEGIN{RS=" "}{print $0}'
ORS :输出记录分隔符
常用方式:
awk '{print NR}' filename #统计行数
awk 'END{print NR}' filename #输出总行数
格式化打印:
printf
Comments NOTHING