正則表達式含義與構成:用單個字元串來描述或者匹配一系列符合某個句法規則的字元串,一般是由普通字元與特殊字元組成 awk 選項 '模式或者命令{編輯指令}' 文件名 awk '//{print}' awk -f 腳本文件 文件名 元字元 : \ 轉義 ^ 以....開頭 $ 以....結尾 . 任意符 ...
正則表達式含義與構成:用單個字元串來描述或者匹配一系列符合某個句法規則的字元串,一般是由普通字元與特殊字元組成
awk 選項 '模式或者命令{編輯指令}' 文件名 awk '//{print}'
awk -f 腳本文件 文件名
元字元 :
\ 轉義
^ 以....開頭
$ 以....結尾
. 任意符
* 匹配子表達式0次或多次
[list] 匹配列表裡的一個字元 eg: go[ola]d 也只是匹配其中一個字元
[^list] 匹配任意一個不在列表裡的一個字元
\{n,m\} 匹配前面的子表達式最小n到最大m次
擴展元字元:
+ 匹配前面子表達式1次以上
? 匹配前面子表達式0次或者1次
() 將括弧中的字元串看成一個整體
| 以 或 的方式匹配
awk 內置變數:
FS 指定每行文本中的分隔斷,不寫分隔符預設空格
NF 處理當前文本的列數
NR 處理當前文本的行數
$0 處理當前行的整行內容
$n 處理當前的第n個欄位
sort 排序命令
sort -r 反向排序
sort -n 以數值的大小排序,從大到小
uniq 去除重覆項
uniq -c 在每行加上編號
公司實例:
使用awk 一條命令:提取IP並且編輯IP生成主機名,並且把IP中的 . 替換成 - (生成的格式:用戶名-IP-地址)
hostname `ifconfig | grep "inet addr:" | awk -F: 'NR==1 {print $2}'|awk -F" " '{print $1}'|awk -F. '{print "Dfs-"$1"-"$2"-"$3"-"$4"-BJ"}'`