Linux常用命令 awk

2021-09-25 14:48:02 字數 1772 閱讀 1544

awk - pattern scanning and processing language

文字以行為單位進行處理,對於日誌處理非常有用,然後配合其他命令可以做一些統計的工作。

awk根據空格或者製表符將一行分割成若干字段,$1$2$3等依次表示後面的各個字段,$0表示整行內容。

假如有nginx的日誌檔案 access.log 如下:

61.219.11.153 - - [28/jul/2019:13:12:57 +0800] "get / http/1.1" 400 173 "-" "-" "-"需要獲取所有訪問的ip列表

awk '' access.log

結果如下:

118.24.167.225

118.24.167.225

61.219.11.153

如果你的內容不是以空格和製表符作為分割符,則可以通過-f引數指定分隔符

如你需要看/etc/passwd的所有使用者資訊

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

命令如下

awk -f ':' '' /etc/passwd

root

bindaemon

adm

輸出最後乙個字段

awk '' access.log

nf變數代表每行的字段數,還有其他有用的一些變數

filename:當前檔名

fs:字段分隔符,預設是空格和製表符。

rs:行分隔符,用於分割每一行,預設是換行符。

ofs:輸出欄位的分隔符,用於列印時分隔字段,預設為空格。

ors:輸出記錄的分隔符,用於列印時分隔記錄,預設為換行符。

ofmt:數字輸出的格式,預設為%.6g。

輸出只包含某個ip的行

awk '/39.71.61.171/ ' access.log

if語句

awk -f ':' '' /etc/passwd

awk常用命令

awk命令詳解 2009年03月31日 星期二 22 22 awk指令詳解 1.命令簡述 awk將每個輸入行識別成一條記錄,而將那一行上的每個單詞域識別成乙個字段 2.命令選項 f 指定分隔符 nf 單行最後乙個分段 nr 行數 等同 and 語句兩邊必須同時匹配為真 等同 or 語句兩邊同時或其中...

awk常用命令

1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第一列 sed n 2,1p filename awk pri...

awk常用命令

awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...