awk入门实例(实用)
来源:互联网 发布:软件园源码 编辑:程序博客网 时间:2024/05/16 09:52
本文转载自(更多内容请参考):点击打开链接
一、使用说明
格式:awk [-F field-separator] 'commands' input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。
二、入门实例
实例一:
假设last -n 5的输出如下(表示仅取出前五行):
[root@www ~]# last -n 5root pts/1 192.168.1.100 Tue Feb 10 11:21 still logged inroot pts/1 192.168.1.100 Tue Feb 10 00:46 - 02:28 (01:41)root pts/1 192.168.1.100 Mon Feb 9 11:41 - 18:30 (06:48)dmtsai pts/1 192.168.1.100 Mon Feb 9 11:41 - 11:41 (00:00)root tty1 Fri Sep 5 14:09 - 14:10 (00:01)如果只是显示最近登录的5个帐号,操作如下:
#last -n 5 | awk '{print $1}' rootrootrootdmtsairoot
如果只是显示最近登录的5个帐号且需要保存到文件中,操作如下:
#last -n 5 | awk '{print $1}' > test.docrootrootrootdmtsairoot(保存为.doc格式,是为了方便在windows下处理)
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推。
实例二:
如果只是显示/etc/passwd的账户
#cat /etc/passwd |awk -F ':' '{print $1}' rootdaemonbinsys这种是awk+action的示例,每行都会执行action{print $1}。
-F指定域分隔符为':'。
实例三:
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
#cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'root /bin/bashdaemon /bin/shbin /bin/shsys /bin/sh
实例四:
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'name,shellroot,/bin/bashdaemon,/bin/shbin,/bin/shsys,/bin/sh....blue,/bin/nosh
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。
0 0
- awk入门实例(实用)
- awk:快速入门(简单实用19例+鸟哥书内容)
- [转]Awk基础入门:Awk实例编程之一
- awk教程入门与实例练习(一)
- awk教程入门与实例练习(二)
- awk教程入门与实例练习(三)
- awk 实例练习(一)
- awk 实例练习(二)
- awk 实例练习 (三)
- awk 实例练习(一)
- awk 实例练习(二)
- awk 实例练习(一)
- awk 实例练习(二)
- awk 实例练习(一)
- awk 实例练习(二)
- awk 实例练习 (三)
- awk 实例练习(一)
- awk 实例练习(二)
- 事务的传播行为
- mysql事务隔离级别
- Swift-数据类型
- 利用 Intent 跳转微信分享
- 欢迎使用CSDN-markdown编辑器
- awk入门实例(实用)
- 深入浅出 JavaWeb:Servlet
- Git常用命令
- CSS3动画详解
- Linux实战教学笔记21-Rsync数据同步工具
- 掘金阴明:后端渲染实践
- Scala语言基础教程 一个程序带你了解整个Scala的基础语法和使用
- SpringMVC+redis整合
- smmu 学习笔记之mmap函数.