linux三剑客awk

awk是编辑,处理匹配到的文本内容
原文件
pyyu1 pyyu2 pyyu3 pyyu4 pyyu5
pyyu6 pyyu7 pyyu8 pyyu9 pyyu10
pyyu11 pyyu12 pyyu13 pyyu14 pyyu15
pyyu16 pyyu17 pyyu18 pyyu19 pyyu20
pyyu21 pyyu22 pyyu23 pyyu24 pyyu25
pyyu26 pyyu27 pyyu28 pyyu29 pyyu30
1、NR:行号    $0:一整行信息   
[root@localhost ~]# awk 'NR==35,NR==40{print NR,$0}' /etc/passwd
    35 ntp:x:38:38::/etc/ntp:/sbin/nologin
    36 gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    37 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    38 nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    39 gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
    40 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
2、NF列数
[root@localhost ~]# awk '{print $1,$(NF-1),$(NF-2)}' syh.txt 
    pyyu1 pyyu4 pyyu3
    pyyu6 pyyu9 pyyu8
    pyyu11 pyyu14 pyyu13
    pyyu16 pyyu19 pyyu18
    pyyu21 pyyu24 pyyu23
    pyyu26 pyyu29 pyyu28
3、-F  指定分隔符
[root@localhost ~]# awk -F ":" '{print $1,$NF}' /etc/passwd
    root /bin/bash
    bin /sbin/nologin
    daemon /sbin/nologin
    adm /sbin/nologin
4、-F:输入分隔符    OFS:输出分隔符
[root@localhost ~]# awk -F ":" -v OFS="------" '{print $1,$NF}' /etc/passwd
    root------/bin/bash
    bin------/sbin/nologin
5、-v:定义或修改一个awk内部的变量
[root@localhost ~]# awk -v FS=":" '{print NR,NF,$1}' /etc/passwd
    1 7 root
    2 7 bin
    3 7 daemon
6、BEGIN:处理文本前,先执行BEGIN模式指定的内容
[root@localhost ~]# awk 'BEGIN{print "山茶花开始用awk处理文本了"}' pwd.txt
山茶花开始用awk处理文本了
7、END:awk处理完所有指定文本,需要执行的操作
[root@localhost ~]# awk 'BEGIN{print "处理文本之前,awk执行了这个动作~~~"}{print $0}END{print "所有文本以及处理完毕,执行了END模式"}' tt.txt
处理文本之前,awk执行了这个动作~~~
asdfjkl;
qweruiop
zxcvnm,.
所有文本以及处理完毕,执行了END模式
8、//:正则表达式
[root@localhost ~]# awk -F ":" '/^games/{print $1,$NF}' /etc/passwd
games /sbin/nologin
9、以avahi开头,以syh结尾,打印行号和整行
[root@localhost ~]# awk '/^avahi/,/syh$/{print NR,$0}' /etc/passwd
41 avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
42 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
43 tcpdump:x:72:72::/:/sbin/nologin
44 aaa:x:1000:1000:aaa:/home/aaa:/bin/bash
45 syh:x:1001:1001::/home/syh:/bin/bash
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宏运维有点菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值