linux_高级命令
1、Awk是对文本进行格式化的工具,适合处理比较复杂的格式处理
Awk命令格式
Awk[options]’pattern模式{Action动作}’file1,file2….
Awk ‘{print $2,$3}’ access.log 打印第二第三列内容
$1代表第一列,$3代表第三列,默认按空白字符做分割;
Awk ‘{print “my name is:” $2,$3}’ access.log
打印第二第三列内容拼接内容my name is:222 ,aaa
输入分割符号:默认按空白字符做分割,通过-F选项来执行分隔符;
Awk –F’#’ ‘{print $1}’ test.log
输出分隔符:
Awk –v OFS=”à” ‘{print $2,$3}’ access.log
关系运算模式:
打印 3-5行的数据,输出第2,3列
面试题:某文件有多列数据,空格隔开,统计第三列单词,按照单词出现的次数,做倒叙排列,并展示次数
Awk ‘{print $3}’ demo.log |sort | uniq –c |sort –rn
展示前三个:
Awk ‘{print $3}’ demo.log |sort | uniq –c |sort –rn |head -3
- sed
Sed[选项][动作]
打印3-5行
Sed –n ‘3,5p’ demo.log
删除2-4行内容
在第一行后新增一行hell word
搜索并打印包含beijing的行
替换beijing 为nanjing
面试题:某文件有多列数据,空格隔开,按照单词出现的次数,倒叙展示前5名,并同时展示次数
Sed ‘s/ /\n/g’ demo2.log |sort |uniq –c |sort –rn |head -5 将所有的空格替换为回车到同一列
- Grep主要是做过滤的,查看包含指定字符的行
Grep “Nanjing” demo.log
显示行号:
Grep –n “Shenzhen” demo.log
显示匹配字符前后行数据,-Bn前n行,-An后n行, -Cn前n行+后n行
Grep –B2 “shenzen” demo.log 前n行信息
Grep –A2 “shenzen” demo.log 后n行信息
Grep –C2 “shenzen” demo.log 前、后n行信息
Grep –W “shenzen” demo.log 精确匹配
Grep –V “shenzen” demo.log 不包含某些字符串的行