访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

helloworldlee

时间:2019-08-11

linux命令_linux命令_linux vi命令

linux命令之awk

简介

awk命令的名称是取自三位创始人Alfred Aho 、Peter Weinberger 和 Brian Kernighan姓名的首字母,awk有自己的程序设计语言,设计简短的程序,读入文件,数据排序,处理数据,生成报表等功能。

awk 通常用于文本处理和报表生成,最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。

awk 通常以文件的一行为处理单位的,awk每接收文件的一行,然后执行相应的命令,来处理文本,完整的awk脚本通常用来格式化文本文件中的信息

使用方式

awk'{pattern + action}'{filenames}

pattern 表示 AWK 在数据中查找的内容,正则表达式,用斜杠括起来

action 是在找到匹配内容时所执行的一系列命令

linux命令_linux vi命令_linux命令

花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组

使用说明

[hebinbin@iZ25y8wtfbqZ ~]$ awk '{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

依次对/etc/passwd中的每一行执行print命令,所有输出都发送到stdout,所得到的结果与执行cat /etc/passwd完全相同

$0 $n表示

-F参数:指定分隔符linux命令,可指定一个或多个

root@iZ25me8kko3Z:~# awk -F "/" -F ":" '{ print $1 " " $9 " " $0 }' /etc/passwd
root  root:x:0:0:root:/root:/bin/bash
daemon  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin  bin:x:2:2:bin:/bin:/bin/sh
sys  sys:x:3:3:sys:/dev:/bin/sh
root@iZ25me8kko3Z:~# awk '{if(NR>=20 && NR<=30) print $1}' test.txt
sock.close()
print('%s
break
elif
data
data
#print(data)
#print(clients)
#if
if
print(data)

linux vi命令_linux命令_linux命令

awk在开始处理输入文件之前会执行BEGIN块,处理了输入文件中的所有行之后执行END块

root@iZ25me8kko3Z:~# awk '{count++;print $0;} END{print "user count is ",count}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
.................
user count is  47

count是自定义变量,没有初始化默认是0linux命令,action{}中的多个语句用 ;隔开

root@iZ25me8kko3Z:~# awk 'BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}' /etc/passwd
[start] user count is  0
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
.....................
[end] user count is  47
 上一个教程:Linux解压命令大全