AWK
2023-01-13
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