awk 是乙個強大的文字分析工具,可以非常方便地處理每行都是相同格式的文字,是linux中功能強大的資料處理引擎之一。
演算法集市:grep命令快速入門zhuanlan.zhihu.com
演算法集市:sed 命令快速入門zhuanlan.zhihu.com
前面兩篇分別示例了 grep/sed 的用法,這篇介紹 awk 的用法。
linux 文字操作的三大神器:grep、sed、awk,各自的最佳應用場景:
awk 可以進行樣式裝入、流控制、數**算、流程控制,還有內建的變數和函式,具備乙個完整語言所應具有的幾乎所有完美特性,相當於乙個小型程式語言。
awk 的三位創始者將其定義為:樣式掃瞄和處理語言。awk 是以檔案的一行為處理單位的,awk每接收檔案的一行,就執行相應的命令。
基本命令格式:
awk ''
其中,pattern表示在資料中要查詢的內容,action表示要執行的一系列命令。
awk 通過指定分隔符,將一行分為多個字段,依次用 $1、$2 ... $n 表示第乙個字段、第二個欄位... 第n個字段。比如有一log檔案,若只想獲取 vel、acc、steer 的值,則可以通過下面的命令:
awk的預設分隔符是空格和製表符,上面的例子中,若希望把逗號去掉,則可以使用 -f 引數來指定分隔符,命令如下:
awk -f ':|,' '' log
這裡指定冒號(:)和逗號(,)同時作為分隔符。
除了 $1、$2 ... $n,awk 還有一些內建變數,常用的如下:
如下圖所示,在每一行前加上檔名、行號、每行列數,命令如下:
awk 的 pattern 也支援使用條件判斷,比如只列印 vel 小於 5.0 的行,命令如下:
awk 還可以快速計算出一些統計值,比如最大值,最小值,平均值等。
比如計算 vel 的最大值,命令如下:
計算 acc 的最小值,命令如下:
上面命令中的 begin 和 end 都是awk的關鍵字:
awk 同時支援 print 和 printf 兩種列印輸出的函式。
如下圖所示,通過printf指定顯示兩位小數。
awk指定分隔符 Linux 命令之 awk 用法
乙個強大的文字分析工具命令,把檔案逐行的讀入然後執行相應的命令,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理,通常用來格式化文字檔案中的資訊.主要涉及的概念有記錄 行 域 列 域分隔符 1.begin 模組 在awk處理任何輸入檔案之前執行 2.end 模組 在整個輸入檔案處理完成後被...
Linux命令分隔符
securecrt可以連線到linux裝置上,同linux平台一樣,可以輸入命令完成相關操作,對於一些常用操作命令,可以設定快捷鍵。多條命令設定在同乙個快捷鍵時,需要注意命令分隔符的使用。今天除錯沒注意,導致浪費半天掛機 用分號分隔的命令會按順序執行,即使中間命令使用方式不對,會有相關錯誤輸出,後面...
命令執行分隔符辨析
在滲透測試的時候,會時不時的遇到多個命令使用分隔符隔開的情形。那麼,不同的分隔符的意義到底有什麼不同呢?一般系統的命令分隔符有 它們的區別如下表所示 分隔符 描述 如果每個命令都被乙個分號 所分隔,那麼命令會連續地執行下去 執行錯誤檢查命令,如果其左側的命令不返回預期的結果,其右側的命令就不會執行 ...