AWK

awk 也是一门语言;

awk 擅长:

​ 取列

awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)

参数:
    -F		# 指定分隔符
    
    $1		# 第一列
    $0		# 打印所有
    $NF		# 打印列的个数
    $(NF-n)		# 倒数第 n 列,n为数字
    NR		 # 行号,从1开始

# 指定分隔符 : ,打印第一列
awk -F '[:]' '{print $1}' /etc/passwd

# 第 2-5 行
awk 'NR>2&&NR<5' /etc/passwd
# 只取第二行
awk 'NR==2' /etc/passwd

# 过滤 包含 nologin 字符串的行
awk /nologin/ /etc/passwd

# 过滤以 非 n 开头的。[^n] 非n;^ 以什么开头
awk '/^[^n]/' /etc/passwd

# 取IP地址
ifconfig ens160 | awk -F "[ ]+" 'NR==2{print $3}'

# 匹配第一列为root 的行
awk -F ":" '$1~/root/' /etc/passwd


netstat -alnpt | awk -F "[ ]+" 'NR>2{state[$6]+=1} END {for (i in state) print i,state[i]}'

netstat -alnpt | awk -F "[ ]+" 'NR>2{print $6}'| sort | uniq -c