美文网首页
shell awk 命令

shell awk 命令

作者: 衣介书生 | 来源:发表于2020-03-07 15:47 被阅读0次

awk的最基本功能是在文件或者字符串抽取信息。通常awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本,几个常用的参数和命令。

// test.txt
aaa 10 20
bbb 20 30
aaa 30 10
ccc 40 5
ccc 20 10
ccc 40 6

第二列求和:

cat test.txt | awk '{sum += $2};END {print sum}'

第二列为值,第一列为 key,求每个 key 对应的所有值的和:

cat test.txt | awk '{sum[$1]+=$2} END {for(i in sum) print i,sum[i]}'

ccc 100
bbb 20
aaa 40

统计第一列的元素分别出现了几次:

cat test.txt |awk '{sum[$1]+=1}END{for(i in sum)print i,sum[i]}'

ccc 3
bbb 1
aaa 2

统计前两列元素出现的次数:

cat test.txt |awk '{sum[$1" "$2]++}END{for(i in sum)print i,sum[i]}'

bbb 20 1
aaa 10 1
ccc 20 1
aaa 30 1
ccc 40 2

打印文件名,每行的行号,每行的列数,对应的完整内容:

  • -F指定分隔符
  • FILENAME:文件名
  • NR:每行的行号
  • NF:每行的列数
  • 0: 变量是指整条记录。1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。
awk  -F ' '  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' test.txt

filename:test.txt,linenumber:1,columns:3,linecontent:aaa 10 20
filename:test.txt,linenumber:2,columns:3,linecontent:bbb 20 30
filename:test.txt,linenumber:3,columns:3,linecontent:aaa 30 10
filename:test.txt,linenumber:4,columns:3,linecontent:ccc 40 5
filename:test.txt,linenumber:5,columns:3,linecontent:ccc 20 10
filename:test.txt,linenumber:6,columns:3,linecontent:ccc 40 6

打印第一列,最后一列,倒数第二列,第二行:

awk -F " " '{print $1}' test.txt
awk -F " " '{print $NF}' test.txt
awk -F " " '{print $NF-1}' test.txt
awk -F " " 'NR==2 {print "filename:" FILENAME " content:" $0}' test.txt

aaa
bbb
aaa
ccc
ccc
ccc

20
30
10
5
10

19
29
9
4
9
5

filename:test.txt content:bbb 20 30

相关文章

  • Linux Shell中使用awk完成两个文件的关联Join

    awk 处理两个公共字段 关键字:shell、awk、join Shell中的awk命令是非常强大的,有很多书籍专...

  • Linux命令之awk

    awk中使用shell命令awk '{cmd="rm "$0;system(cmd)}' filename.txt...

  • 1. shell入门练习(awk + sed命令)

    1.shell入门练习(awk + sed命令) awk: 批量关闭线程 ps aux |grep nginx |...

  • 自动化脚本实践(Shell + Expect)

    Linux Shell脚本入门: Linux awk 命令 | 菜鸟教程 Shell 教程 | 菜鸟教程 lin...

  • [Linux-Shell] 基础知识

    搬运 一、主要内容 shell编程 sed命令 awk命令 crontab定时器 二、简介 Shell是用户与内核...

  • shell awk 命令

    awk的最基本功能是在文件或者字符串抽取信息。通常awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执...

  • 过滤Docker是否存在网络名称

    1、过滤命令操作 通过docker network ls 和grep、awk管道命令进行结合使用 2、shell脚本

  • BigData~01:Shell

    Shell编程基础 内容大纲 一、Shell编程二、高级文本处理命令:sed、awk、cut三、crontab定时...

  • shell-awk命令

    awk比sed更加强大,能对行中的段进行操作。 语法 常见用法 指定分隔符过滤文件(不指定时默认为空格或空白字符)...

  • shell命令之awk

    一、awk简介 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一...

网友评论

      本文标题:shell awk 命令

      本文链接:https://www.haomeiwen.com/subject/giccdhtx.html