1、常见的输出格式整理

awk '{print "this is " $1, $2, $1*$2, NR, NF, $NF}' file1   ###字符输出,字段输出,运算输出,内置变量输出等,默认空格分开;$1 ,$2调换顺序打印随之变化

awk 'BEGIN{FS=OFS="\t"} {print $1,$2 }' file2  ###读入字段分割,输出字段分割

awk -F '[ :\t|]' '{print $1}' file          ##可以有多个分割符

awk  {printf ("this is\t%d\t%.2f %s %s %s\n",NR,NF,$1,$2,$NF)}'  file3 ###printf( )不自动换行;%d ,%.2f, %s;字段分割也可以指定

awk '{$2="";print }' file  ##不打印第二列

2、选择

数字选择:awk '$2 > 10{print}' file    ###+   -  *   /    %  ^ ; >=   <=   !=   ==  ; ~    !~   /gene/ || /mNA/

字符选择 :awk ‘$2 == "gene" {print}’ file

    awk '/mRNA/{match($9,/ID=(.*);P/,a);printf "%s\t%s\t%d\t%d\n",$1,a[1],$4,$5}' Chr_genome_final_gene.gff3  ##生成circos的gff文件

    awk '{gsub(/gene/,"gene_id",$3);print}' Chr_genome_final_gene.gff3|less          ##替换处理

正则匹配:awk ‘ /gene/ {print}’ file   ###^   $   .   []  \  | () * + ?

组合选择:&& || ! 和and  or not

      awk ‘$2 >=10 && $3<=20 {print}’ file

文本处理开始于结束BEGIN{} END{}

3、计算

数字计算:awk '{a+=2}END{print a}' file      

字符串联:awk '{a = a " " $1} END{print a}' file   或者  awk '{a = a $1 " "} END{print a}' file

总行以及最后一行:awk '{last = $0}END{print NR, last}' file     

内建函数:length($0)          ##$0不包含换行符

每一行所有字段和:awk '{ sum = 0; for( i = 4; i <= 5; i++){printf("%d\t" , $i); sum += $i };print sum }'    ##打印4,5列,计算每行的4到5列的和

所有行字段和:awk '{ for( i = 4; i <= 5; i++){ sum+=$i }}END{ print sum }'

4、流程控制语句

if() print else print

while(){}

for (i=0; i<=5;i++){}

for (i  in  a) {}

next  ; break

4、数组

awk '{a[NR] = $0} END{ for(i = 1;i <= NR;i++)print a[i]}' file

5、常用内建字符串函数

index(r , t)    match(s , r ,arr)   sprintf   split(s ,arr, fs)   gsub(r ,s, tar)   substr(s, star, len)

2、awk的输出的更多相关文章

  1. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...

  2. awk内置字符串函数 awk 格式化输出

    i249 ~ # ps -efl|head -1|awk '$2~/S/{print $2}'Si249 ~ # ps -efl|awk '$2~/S/{print $2}'SSSS printf - ...

  3. 使用awk格式化输出文本

    注意:本文并不是一篇awk入门文章,而是偏重实例讲解 awk借鉴了c语法,因此awk在许多地方还保留有c语言的痕迹,比如printf语句:for,if的语法结构等 介绍 最简单地说,AWK 是一种用于 ...

  4. linux:awk修改输出分隔符

    file1的内容如下: a b c d e f g h 现在想要修改成 a b c:d e f g:h 则需要用到如下命令: awk -F " " '{print $1,$2,$3 ...

  5. awk应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  6. awk(1)-简述

    1.概述 AWK is a programming language designed for text processing and typically used as a data extract ...

  7. awk语法

    awk是一个非常棒的数字处理工具.相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理.运行效率高,而且代码简单,对格式化的文本处理能力超强.先来一个例子: 文件a,统计 ...

  8. awk命令--update20150120

    简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...

  9. awk 手册--【转载】

    1. 前言 有关本手册 : 这是一本awk学习指引,  其重点着重于 : l         awk 适于解决哪些问题 ? l         awk 常见的解题模式为何 ? 为使读者快速掌握awk解 ...

随机推荐

  1. 【SQL】分组数据,过滤分组-group by , having

    学习笔记,原文来自http://blog.csdn.net/robinjwong/article/details/24845125 创建分组 - GROUP BY 分组是在SELECT语句的GROUP ...

  2. ACM学习历程—51NOD 1412 AVL树的种类(递推)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的B题.设p(i, j)表示节点个数为 ...

  3. python操作RabbitMQ(不错)

    一.rabbitmq RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列 ...

  4. JAVA内置注解 基本注解

    温故而知新,可以为师矣! 每天复习,或者学习一点小东西,也能水滴石穿! 今天复习5个JAVA内置基本注解(贴代码胜过千言万语): package com.lf.test; import java.ut ...

  5. 解决ubantu中sublime不支持中文的方法

    更新然后将系统升级到最新版本,在linux终端输入 sudo apt-get update && sudo apt-get 在本地目录中克隆此repo:    如果你没有git的话就安 ...

  6. Javascript 原型链资料收集

    Javascript 原型链资料收集 先收集,后理解. 理解JavaScript的原型链和继承 https://blog.oyanglul.us/javascript/understand-proto ...

  7. linux 命令详解 sort

    转自:https://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五 ...

  8. Mac eclipse 连接 手机调试

    Mac eclipse 连接 手机调试 更新:2014-11-10 20:13 1 2 3 4 5 6 分步阅读 很多Android程序员 用Mac 来开发.但是Mac下eclipse连接 手机存在一 ...

  9. Spring BeanPostProcessor与动态加载数据源配置

    前言: 本文旨在介绍Spring动态配置数据源的方式,即对一个DataSource的配置诸如jdbcUrl,user,password,driverClass都通过运行时指定,而非由xml静态配置定死 ...

  10. VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法

    1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序 (DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dl ...