社区
系统维护与使用区
帖子详情
帮忙解释一下一个AWK语句,谢谢
wuyz124
2008-09-03 08:05:11
对于数据文件如:
abc 10
def 28
abc 2
abc 20
可以使用脚本:
awk ' { arr[$1]=arr[$1]+$2 } END { for( key in arr) { print key , arr[key] } } ' filename
来对不同的行计算group sum.
请问这个语句怎么理解呢?请具体给出每部分的作用,谢谢了.
...全文
131
1
打赏
收藏
帮忙解释一下一个AWK语句,谢谢
对于数据文件如: abc 10 def 28 abc 2 abc 20 可以使用脚本: awk ' { arr[$1]=arr[$1]+$2 } END { for( key in arr) { print key , arr[key] } } ' filename 来对不同的行计算group sum. 请问这个语句怎么理解呢?请具体给出每部分的作用,谢谢了.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kinfkong
2008-09-03
打赏
举报
回复
awk --- 执行程序
'BEGIN{...}{...}END{...}' --- 引号内一般有三块, BEGIN, 中间, END, 你的程序省了BEGIN(一般做初始化操作).
中间的那块,每读到文件的一行都执行一次.
{arr[$1]=arr[$1]+$2},$1表示一行中的第一栏,分隔符为空格,在你的例子中,abc, def等都是第一栏. $2是第二栏.
这句语句,在你的例子中,相当于:
arr['abc'] = arr['abc'] + 10
...
所以相当于把所有累加.
END后面就把它全部输出.
awk
if
语句
awk
命令以if结构开头的话句属于操作
语句
。条件模式(conditional pattern) 中。if是隐含的。而条件操作
语句
的if则是直接声明的,后面跟了
一个
用圆括号括起来的表达式。如果该表达式的运算结果为真(非0或非空),则执行表达式后的
语句
(或
语句
块)。如果跟在条件表达式后面的
语句
不止一条,就要用分号或换行符把它们隔开,还要用花括号把这一组
语句
都括起来,以作为
一个
块来被执行。 格式
AWK
条件
语句
与循环
如果条件为真,则执行动作( action ),然后执行递增( increment )或者递减( decrement )操作。While 循环首先检查条件 condition 是否为 true ,若条件为 true 则执行动作 action。if (num % 2 == 0) printf "%d 是偶数\n", num }'在条件
语句
condition 为 true 时执行 action-1,否则执行 action-2。if (num % 2 == 0) printf "%d 是偶数\n", num;
Awk
If,If Else,Else
语句
或条件
语句
Awk
is a very popular text processing tool.
Awk
provides different functionalities and structures like programming languages. if - if elseis a very useful conditional statement used to create decisio...
awk
条件
语句
条件
语句
用于在执行操作之前做
一个
测试。在前面的章节中,我们看到了模式匹配规则的一些示例。模式匹配规则本质上就是影响输入循环的条件表达式。在这一部分,我们主要就在action中所使用的条件
语句
进行探讨。条件
语句
以if开头,并计算放在圆括号中的表达式。语法是: if (expression) action1 [else action2] 如果条件表达式expression的值
awk
(三)If
语句
条件判断
语句
:if(表达式){
语句
1}elseif(表达式){
语句
2}else{
语句
3}格式中"
语句
"可以多个
语句
,最好将多个
语句
用{}括起来。例:
awk
-F: '{if($1~/mail/){print$1}}' /etc/passwd#如果第
一个
字段为mail,输出第
一个
字段
awk
-F: '{if($1~/mail/)print$1}' /etc/passwd#...
系统维护与使用区
19,614
社区成员
74,557
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章