zoukankan      html  css  js  c++  java
  • 总结下awk基本用法

    命令格式:
    awk '{commands}  [{other commands}]'
    awk 'condition{commands}  [{other commands}]'  如:awk '$4=="gold"{print $0}' xxx.txt  ——  打印第四列为gold的行
    
    {$0 $1 $2 ...}: $0表示整行,$1表示第一列,$2表示第二列…… 
    
    NR: number of record,{print $NR, $0}可以给行加上行号
    NF: number of fields,每个记录的列数(默认空格分割计数)
    
    打印第7行:	awk 'NR==7{print $0}' test.txt
    打印有10列的行:	awk 'NF==10{print $0}' test.txt
    打印最后一列: 	awk '{print $NF}' xxx
    打印倒数第二列:	awk '{print $(NF-1)}' xxx
    
    {print $1, $2} 中的逗号表示使用默认输出分隔符连接1,2列并打印。(默认是空格)
    {print $1$2} 和 {print $1 $2} 等效,第1,2列直接连接,中间没有分隔符。(即输出语句的空格表示直接连接)
    
    
    定义变量:
    awk 'BEGIN{在这里定义} {后续命令}'
    内建变量:
    FS:输入分隔符
    OFS:输出分隔符 (O,不是零)
    
    自定义输入分隔符使用逗号:
    awk 'BEGIN{FS=","} {print $1, $2}' test.txt
    自定义输出分隔符使用逗号:
    awk 'BEGIN{FS=","; OFS=","} {print $1, $2}'
    

    算术运算、

    字符串和数字自动转换、

    字符串和数字运算时自动parse开头的数字


    使用正则

    awk '/正则式/{命令}' xxx
    awk '/abc/{print $0}' xxx  	打印包含abc的行
    
    正则式简介:
    1. /abc/ 包含abc
    2. /^abc$/ 匹配开头和结束
    3.  . 任意字符或空格
    4. 转义 . ? /
    5. 中括号
    	[xyz] 匹配xyz中的任意一个字符
    	[a-z] 匹配a-z范围内任意字符
    	[a-zA-Z]
    	[^a-z] ^放在中括号中表示不匹配,如 /a[^a-z]c/ 可以匹配 aBc,不能匹配abc
    6. 数量:
    	* 0次或若干次
    	+ 1次或若干次
    	? 0次或1次
    	{a,b} 指定出现a~b次数,如{3}表示出现3次,{4,9} 表示可以出现4,5,6,7,8,9次
    7. () 匹配的单位,如 /(ab){3}/ 要求包含ababab
    
  • 相关阅读:
    Stack
    js this理解
    js面向对象
    自执行函数
    原!struts安全漏洞,由2.3.37版本升级至2.5.22
    原!linux机器 配置自动scp脚本
    转!!记一次使用 Arthas 热更新线上代码
    mysql 修改大表字段,报错ERROR 1878 (HY000): Temporary file write failure. 用pt-online-schema-change
    转!!JAVA Future 模式与 Promise 模式
    转!!linux下详解shell中>/dev/null 2>&1
  • 原文地址:https://www.cnblogs.com/dylanchu/p/11337562.html
Copyright © 2011-2022 走看看