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 不包含某些字符串的行