awk多行合并 next
来源:互联网 发布:mac文件路径 编辑:程序博客网 时间:2024/05/16 08:20
在awk进行文本处理时候,我们可能会遇到。将多行合并到一行显示问题。 有点象sql里面,经常遇到的行转列的问题。 这里需要用到next语句。
awk next语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。
text.txt 内容是:abcde [chengmo@centos5 shell]$ awk 'NR%2==1{next}{print NR,$0;}' text.txt 2 b4 d 当记录行号除以2余 1,就跳过当前行。下面的print NR,$0也不会执行。 下一行开始,程序有开始判断NR%2 值。这个时候记录行号是:2 ,就会执行下面语句块:'print NR,$0'
awk next使用实例:
文件:text.txt 格式:web01[192.168.2.100]httpd oktomcat oksendmail okweb02[192.168.2.101]httpd okpostfix okweb03[192.168.2.102]mysqld okhttpd ok 需要通过awk将输出格式变成:web01[192.168.2.100]: httpd okweb01[192.168.2.100]: tomcat okweb01[192.168.2.100]: sendmail okweb02[192.168.2.101]: httpd okweb02[192.168.2.101]: postfix okweb03[192.168.2.102]: mysqld okweb03[192.168.2.102]: httpd ok 分析:分析发现需要将包含有“web”行进行跳过,然后需要将内容与下面行合并为一行。[chengmo@centos5 shell]$ awk '/^web/{T=$0;next;}{print T":\t"$0;}' test.txtweb01[192.168.2.100]: httpd okweb01[192.168.2.100]: tomcat okweb01[192.168.2.100]: sendmail okweb02[192.168.2.101]: httpd okweb02[192.168.2.101]: postfix okweb03[192.168.2.102]: mysqld okweb03[192.168.2.102]: httpd ok
- awk多行合并 next
- awk 多行合并(next)使用
- awk 多行合并【next 使用介绍】
- awk 多行合并【next 使用介绍】(常见应用4)
- awk 多行合并【next 使用介绍】(常见应用4)
- awk 多行合并【next 使用介绍】(常见应用4)
- awk 多行合并【next 使用介绍】(常见应用4)
- awk 多行合并一行
- awk求和及多行合并
- awk 多个文件合并
- awk的next
- awk中next用法
- awk 合并相同列的行
- awk与sed 合并多行为一行
- awk 合并文件
- awk 合并文件
- awk 逐行合并文件
- awk 合并两个文件
- computational advertising 中的auc, roc
- 仿CodeIgniter的购物车类
- 汇编学习--7.16--直接定址表
- 探索式测试中的几种误区
- sql server 日期处理
- awk多行合并 next
- Using Bash shell scripts for function testing
- 关于Eclipse的自动补全快捷键提示no completions available
- OGRE+CEGUI+OIS鼠标无法移出窗口解决方案
- java内部类
- 实训心得___刘晓刚
- 如何写详细设计文档
- Oracle10g远程连接到服务器的数据库
- CSS RESET