linux_高级命令

linux_高级命令

 

1、Awk是对文本进行格式化的工具,适合处理比较复杂的格式处理

Awk命令格式

Awk[options]’pattern模式{Action动作}’file1,file2….

Awk ‘{print $2,$3}’ access.log  打印第二第三列内容

linux_高级命令

$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 

linux_高级命令

 

关系运算模式:

打印 3-5行的数据,输出第2,3列

linux_高级命令

面试题:某文件有多列数据,空格隔开,统计第三列单词,按照单词出现的次数,做倒叙排列,并展示次数

Awk ‘{print $3}’ demo.log |sort  | uniq –c |sort –rn

linux_高级命令

展示前三个:

Awk ‘{print $3}’ demo.log |sort  | uniq –c |sort –rn |head -3

linux_高级命令

linux_高级命令

 

  1.  sed

linux_高级命令

Sed[选项][动作]

linux_高级命令

linux_高级命令

打印3-5行

Sed –n ‘3,5p’  demo.log

linux_高级命令

删除2-4行内容

linux_高级命令

 

在第一行后新增一行hell word

linux_高级命令

搜索并打印包含beijing的行

linux_高级命令

替换beijing 为nanjing

linux_高级命令

面试题:某文件有多列数据,空格隔开,按照单词出现的次数,倒叙展示前5名,并同时展示次数

Sed ‘s/ /\n/g’ demo2.log |sort |uniq –c |sort –rn |head -5  将所有的空格替换为回车到同一列

linux_高级命令

linux_高级命令

 

  1.  Grep主要是做过滤的,查看包含指定字符的行

Grep “Nanjing” demo.log

显示行号:

Grep –n “Shenzhen”  demo.log

 

显示匹配字符前后行数据,-Bnn行,-Ann行, -Cnn+n

 

Grep –B2 “shenzen” demo.log  n行信息

Grep –A2 “shenzen” demo.log  n行信息

Grep –C2 “shenzen” demo.log  前、后n行信息

 

 

linux_高级命令

Grep –W  “shenzen” demo.log  精确匹配

linux_高级命令

Grep –V  “shenzen” demo.log  不包含某些字符串的行