linux中awk学习小结

简介:

awk与sed本身都是一个完整的编程语言,可以用来方便的处理文本,awk处理列。
awk正常的结构: cat tmp.txt | awk 'BEGIN{}{}END{}'   --带有表头,带有中间的处理过程,带有结尾--
常用用法:cat tmp.txt|awk '{print $1}'  --tmp.txt中字段已空格分隔,$0显示整行,$1表示第一个域,$NF最后一个,$NF-1倒数第二个域,默认的分隔符是空格--  
1、域分隔符是:
cat /etc/passwd|awk -F':' '{print $1,$NF}'   --命令行模式下,-F参数可修改输入的分隔符,即处理文件时的分隔符,该命令为以:分隔passwd文件,打印第一个域和最后一个域,输出字符默认已空格分隔--
cat /etc/passwd|awk -F':' '{print $1$NF}' --输出第一个域和最后一个域,之间无空格,--

cat /etc/passwd|awk -F':' '{print $1“____”$NF}'--输出第一个域和最后一个域,之间分隔为____,-- 

2、匹配行打印域
例文件tmp.txt:
11 aa 666
22 bb 777
33 cc 888
命令:
cat tmp.txt|awk '/bb/{print $0}'  结果:22 bb 777  --内容匹配到bb的行打印--
cat tmp.txt|awk '/bb/{print $3}'  结果:777   --内容匹配到bb的行,打印第三个域,默认分隔符为空格--
cat tmp.txt|awk '$2~/b/' {print $3}结果:777   --第二个域可以匹配b的行,打印第三个域,注意有空格--
可以减少一次grep对文件的查找
3、判断打印
cat /etc/passwd|awk -F':' '{if($1=="bill")print}'  --第一个域等于字符串bill,打印--
4、数组
例文件
search 111
search 222
cm 333
search 444
命令:
cat tmp.txt |awk '{a[$1]++}END{for(i in a)print i,a[i]}'
结果:
cm 1
search 3
a[$1]为一个数据,a[$1]++记录不同数据出现次数

5、awk匹配到指定的字符串并打印该字符串所在的域(列数)

格式:

awk '/行匹配串/ {for(i=1;i<=NF;i++) if($i ~ /字符串/)  print $i i}'  $filename
awk '/行匹配串/ {for(i=1;i<=NF;i++) if($i ~ /(字符串1|…|字符串n)/)  print $i i}'    $filename
例:
awk '/is/{for(i=1;i<=NF;i++) if($i ~ /is/) print $i i}' try.pl
本文转自 追光的猫博客51CTO博客,原文链接http://blog.51cto.com/ql0722/1614752如需转载请自行联系原作者

00_yatou
相关文章
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
905 2
|
存储 安全 Linux
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
1421 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
Linux Perl
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
|
监控 Linux 数据处理
Linux grep技巧 结合awk查询
结合 `grep` 和 `awk`,可以实现灵活、高效的文本处理和数据分析。`grep` 用于快速过滤符合条件的行,`awk` 用于进一步处理和提取数据。这种组合使用在日志分析、数据处理和系统监控等场景中尤为常见。掌握这两者的基本用法和组合技巧,可以大大提升在 Linux 环境下的工作效率。
550 7
|
Linux Shell 数据安全/隐私保护
Linux 初学者必学的 10 个命令,学习!
【10月更文挑战第28天】
463 1
Linux 初学者必学的 10 个命令,学习!
|
Linux Perl
Linux awk命令使用技巧
【10月更文挑战第16天】Linux awk命令使用技巧
446 4
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
523 2
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
523 2
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
473 1