linux awk命令怎么用?

 我来答
中公教育IT培训优就业
2020-11-05 · 百度认证:北京中公教育科技官方账号
中公教育IT培训优就业
中公教育IT培训品牌,致力于培养互联网领域的高端人才,以学员就业为目的,优质就业为宗旨,是一家集Java开发、Web前端、UI/UE交互设计、大数据、软件测试等课程为一体的IT培训机构。
向TA提问
展开全部
awk命令是Alfred Aho, Peter Weinberger, Brian Kernighan三位作者联合开发的,用于Linux/Unix中处理数据和产生报告。awk命令功能十分强大,可根据需要抓取、截取指定的列或行。
首先在/mnt目录下创建示例文本文件f1,其内容如下:
1 hello hello
2 data data
3 xyz abc
4 123 789
5 ftp
6 Apache
7 apache
然后,使用awk对f1文件内容进行处理,举例如下。
①awk -F " " '{print $2,$3}' f1:截取显示文档的第二列和第三列,-F指定分隔符为空格,$表示显示第几列。其中print表示要做输出信息的动作,$2和$3表示要输出的列号,awk要求将print已经输出列等内容放在“'{}'”之间。
②awk -F " " '($1>3){print $2,$3}' f1:选取第一列的值大于3的行,显示其第二列和第三列,在“()”中指定筛选条件。
③awk 'NR==4 || NR==3' f1:显示第三行和第四行,NR表示行号。
④awk '/data/ {print $2}' f1:抓取包含指定字符的行,再对列进行截取。此例中,awk先按照“data”字符串对文件f1中的行筛选,找出包含“data”的行以后,再按照默认的空格作为分隔符对行的内容做切割,仅打印出第二列的内容。
⑤awk '$2 ~ /data/ ' f1:抓取第二列包含指定字符的行。其中“~”表示是否匹配指定的“data”,如果第二列的内容包含“data”就打印出整行内容。
⑥awk '$2 !~ /data/ ' f1:抓取第二列不包含指定字符的行。其中“!~”表示是否不匹配指定的“data”,如果第二列的内容不包含“data”就打印出整行内容。
liruxing1715
2011-08-05 · TA获得超过241个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:99.1万
展开全部
awk:用于一行中分成数个“字段”来处理。适合处理 小型数据。
运行模式:awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

# last | awk '{print $1 "\t" $3}' <== 查看登录者的数据,只显示登录名和ip地址,并以[tab]隔开

awk 的内置变量
变量名称 代表的含义

NF 每一行($0)拥有的字段总数

NR 当前 awk 所处理的是 “第几行” 数据

FS 当前分隔符,默认空格键

awk 的逻辑运算符
运算单元 代表含义
> 大于
< 小于
>= 大于或等于
<= 小于或等于
== 等于
!= 不等于

范例:
cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t" $3}' <== 文件/etc/passwd是以":"分隔的,查看第三栏小于10的数据,并且只显示帐号与第三栏

以上是我对awk的总结,希望对你有帮助,是我写的哦,不是复制的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老男孩教育
2022-03-25 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有三个不同的版本:awk、nawk和gawk,未作特别说明,一般指gawk,gawk是awk的GNU版本。

之所以叫awk是因为其取了三位创始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name
的首字符。

使用方法:

awk'{pattern+action}'{filenames}

尽管操作可能会很复杂,但语法总是这样,其中pattern表示awk在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。pattern就是要表示的正则表达式,用斜杠括起来。

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

调用awk的三种方式

1、命令行方式

awk[-F field-separator]'commands'input-file(s)

其中,commands是真正awk命令,[-F域分隔符]是可选的。input-file(s)是待处理的文件。

在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2、shell脚本方式

将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。

相当于shell脚本首行的:#!/bin/sh

可以换成:#!/bin/awk

3、将所有的awk命令插入一个单独文件,然后调用:

awk-f awk-script-file input-file(s)

其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
china101527
2011-08-05 · TA获得超过1070个赞
知道小有建树答主
回答量:628
采纳率:100%
帮助的人:291万
展开全部
awk '{print $1,$2,$3,$4,$5}' emp_names
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-05
展开全部
有本书叫《sed&awk》可看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式