awk常用方法

awk常用方法

  • awk常用方法
    • 输出指定列
      • 输出前N列
    • 输出指定行
    • 打印每一行的字数
    • 输出最后一列
    • 消除空白行
    • 打印网卡配置中的ip地址

awk常用方法

https://blog.51cto.com/oldboy/5447610
awk常用的就是处理列.


输出指定列

# 以:分割,打印第3列和第4列
awk -F":" '{ print $3,$4 }' /etc/passwd

# 带字符串拼接打印第3列和第4列
[rhel7 root ~]# awk -F":" '{ print "第三列:"$3, "\t第四列:"$4 }' /etc/passwd
第三列:0        第四列:0
第三列:1        第四列:1
第三列:2        第四列:2

# 打印第3列和第4列的第一行
awk -F":" 'NR==1{ print $3,$4 }' /etc/passwd
awk -F":" 'NR==1{print "第三列:"$3, "\t第四列:"$4 }' /etc/passwd
[rhel7 root ~]# awk -F":" 'NR==1{print "第三列:"$3, "\t第四列:"$4 }' /etc/passwd
第三列:0        第四列:0

输出前N列

# 输出前N列
awk -F":" 'NF=5' /etc/passwd

## 输出文件内容 ```shell # 打印所有内容 awk '{print}' filename awk '{print $0}' filename ## 等同于cat filename ```

输出指定行

# 输出第3行
awk 'NR==3' filename
## 等同于
sed -n '3p' filename
head -3 filename|tail -1

# 输出第3到第5行
awk 'NR==3,NR==5' filename

#打印行号大于3的数据
awk ‘NR > 3’ filename

打印每一行的字数

# 统计每一行的字数
awk '{print NF}' filename

# 字符串拼接
awk '{print "行号:"NR "\t字数:"NF}' filename

输出最后一列

# 不分割字符串打印
awk '{print $NF}' /etc/passwd

# 以:分割,打印最后一列
awk -F":" '{ ptint $NF }' /etc/passwd
[rhel7 root ~]# awk -F":" '{print $NF}' /etc/passwd
/bin/bash
/sbin/nologin

消除空白行

# 消除空白行
awk NF filename

打印网卡配置中的ip地址

# 打印网卡配置中的ip地址
[rhel7 root ~]# ifconfig eth0|grep -w "inet"|awk '{print $2}'
192.168.0.93

[rhel7 root ~]# ip a show eth0|grep -w "inet"|awk '{print $2}'|awk -F "/" '{print $1}'
192.168.0.93

你可能感兴趣的:(Linux,bash,linux,开发语言)