Linux awk

【參考文章】:linux awk命令詳解html

【參考文章】:awk 入門教程——阮一峯的網絡日誌linux

1. 簡介編程

  AWK是一種處理文本文件的語言,是一個強大的文本分析工具。網絡

  AWK其實不單單是工具軟件,仍是一種編程語言。編程語言

2. 基本用法函數

  awk是以文件的一行爲處理單位的。awk每接收文件的一行,而後執行相應的命令,來處理文本。工具

  默認使用空格做爲分隔符。post

 

  awk   '{ action }'   {filenames}url

  awk   '{ pattern + action }'   {filenames}日誌

  awk  -F  '分隔符' { action } 

3. 變量

  • $ + 數字 :表示第幾個字段,$1 ,$2 表示第 1 ,2 個字段,
  • NF :表示當前行有多少個字段,所以$NF就表明最後一個字段,$(NF-1)表明倒數第二個字段。
  • NR 表示當前處理的是第幾行
  • FILENAME:當前文件名
  • FS:字段分隔符,默認是空格和製表符。
  • RS:行分隔符,用於分割每一行,默認是換行符。
  • OFS:輸出字段的分隔符,用於打印時分隔字段,默認爲空格。
  • ORS:輸出記錄的分隔符,用於打印時分隔記錄,默認爲換行符。
  • OFMT:數字輸出的格式,默認爲%.6g。

 

4. 函數

4.1 print 和 printf

  awk中同時提供了print和printf兩種打印輸出的函數。

  print函數,參數能夠是變量、數值或者字符串。字符串必須用雙引號引用,參數用逗號分隔。若是沒有逗號,參數就串聯在一塊兒而沒法區分。這裏,逗號的做用與輸出文件的分隔符的做用是同樣的,只是後者是空格而已。

  printf函數,其用法和c語言中printf基本類似,能夠格式化字符串,輸出複雜時,printf更加好用,代碼更易懂。

4.2 其餘函數

  • tolower():字符轉爲小寫。
  • length():返回字符串長度。
  • substr():返回子字符串。
  • sin():正弦。
  • cos():餘弦。
  • sqrt():平方根。
  • rand():隨機數。
相關文章
相關標籤/搜索