工具命令集合
##AWK运算符
| 运算符 | 说明 |
|---|---|
| 赋值运算符 | = += -= *= /= %= ^= **= |
| 逻辑运算符 | |
| || | 逻辑或 |
| && | 逻辑与 |
| 正则运算符 | |
| ~ !~ | 匹配正则表达式和不匹配正则表达式 |
| 关系运算符 | |
| < <= > >= != == | 关系运算符 |
| 算术运算符 | |
| + - | 加,减 |
| *** / &** | 乘,除与求余 |
| + - ! | 一元加,减和逻辑非 |
| ^ *** | 求幂 |
| ++ – | 增加或减少,作为前缀或后缀 |
| 其他运算符 | |
| $ | 字段引用 |
| 空格 | 字符串链接符 |
| ?: | 三目运算符 |
| In | 数组中是否存在某键值 |
内置变量
| 变量名 | 属性 |
|---|---|
| $0 | 当前记录 |
| 1 n | 当前记录的第 n 个字段 |
| FS | 输入字段分隔符 默认是空格 |
| RS | 输入记录分割符 默认为换行符 |
| NF | 当前记录中的字段个数,就是有多少列 |
| NR | 已经读出的记录数,就是行号,从 1 开始 |
| OFS | 输出字段分隔符 默认也是空格 |
| ORS | 输出的记录分隔符 默认为换行符 |
特殊模式
| - | - |
|---|---|
| BEGIN | awk 将在读取任何输入行之前立即执行BEGIN 中指定的动作 |
| END | awk 将在它正式退出前执行 END中指定的动作 |
用法
去掉空白:
awk 'NF' file统计行数:
awk 'END{print NR}' file(END)偶数行:
awk 'NR%2==0 {print $n}' file奇数行:
awk 'a=!a' file指定分隔符:
awk -F ":" '{print $1}' file使用正则:
awk '/^tecmint.com/ { counter+=1 ; printf "%s\n", counter ; }' file打印多列:
awk -F ":" '{print $1 $2 .. $(NF-1) $NF}' /etc/passwd多分隔符的用法:
echo i am a protester,myqq is 1112222|awk -F '[, ]' '{print $4 " " $7}'多个分隔符使用正则:
awk -F"/|=" '{print $3, $5, $NF}' file使用
[]作为分隔符:awk -F '[][]' '{print $3;}' data(这里[]分别占用两列 2个$)获取以
[]内的值:awk -F '[][*:]' '{print $8}'
text
| |
也可以使用 `awk -F '[][*:]' '{print $8}'`
text
| |