Linux学习日记 —— 11.2.3 Shell编程-字符截取命令-awk命令

awk不仅可以截取文件中的哪些列,而且它还是一门编程语言。功能很强大,操作起来比cut复杂得多。

截取列时,优先选择cut命令。如果cut命令不足以完成,就考虑awk命令。

awk可以识别的分隔符默认是制表符或空格(就算是多个没有规律的空格也可以识别)。

[root@localhost ~]# awk[条件1] {动作1} [条件2] {动作2} …’ 文件名 
条件:可省略,一般用关系表达式作为条件。
如果用BEGIN作为条件,则它后面的动作会优先执行;
如果用END作为条件,则它后面的动作会最后执行。
动作:格式化输出、流程控制语句等。
示例:
[root@localhost ~]# vi student.txt
ID   Name    PHP   Linux   MySQL  Ave
1   Liming   82     95      86    87.5
2   Sc       74     96      87    85.5
3   Gao      99     83      93    91.5

[root@localhost ~]# awk '{printf $2 "\t" $6"\n"}' student.txt
#会输出Name那一竖列和Ave一竖列
示例:
[root@localhost ~]# df -h | awk '{print $1 "\t" $3}'      
#将df -h的输出内容中的第1列和第3列
awk命令也可支持管道符。
awk命令也会经常配合grep命令一起使用。

FS内置变量
在awk命令中,可用FS内置变量手工指定分割符。

示例:
[root@localhost ~]# cat /etc/passwd | awk 'BEGIN {FS=":"} $1 "\t" $3\n}'
查看/etc/passwd中UID大于等于500的用户名和UID。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

烟敛寒林o

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

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

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

打赏作者

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

抵扣说明:

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

余额充值