zoukankan      html  css  js  c++  java
  • Linux Shell编程 awk

    awk [-field-separator] 'commands' input-file(s)

    • 基本模式

    awk -F':' ... 

    • 使用:分隔

    awk '{print $0}' a.txt 

    • 打印全部

    awk '{print $1,$3}' a.txt 

    • 打印第1、3列

    awk 'BEGIN{print "0"}{print $1}' a.txt  

    • 第一行打印0

    awk '{print $1}END{print "0"}' a.txt 

    • 最后一行打印0

    awk '$1 == "0" {print $0}' a.txt 

    • 第一列等于0的行

    awk '$1!="0" {print $0}' a.txt 

    • 第一列不等于0的行

    awk '$1<=$2' 

    • 第一列小于等于第二列的行

    awk '$0!~/0/' a.txt 

    • 正则匹配所有列不含0的行

    awk '$1~/(12|(34)/' a.txt 

    • 正则匹配第一列匹配12或34的行

    awk 'if($1>1 && $2<1) {print $1} a.txt 

    • 第一列大于1且第二列小于1的行的第一列

    awk 'if($1>1 || $2<1) {print $2} a.txt 

    • 第一列大于1或第二列小于1的行的第二列

    awk '{print NF RS NR}' a.txt 

    • 连续打印记录列数、记录分隔符、已读记录数

    awk 'NR==FNR {print $1} NR>FNR {print $2}' a.txt b.txt 

    • 打印第一个文件的第一列和第二个文件的第二列

    awk '{$1=$1*2; print $1}' a.txt

    • 修改数值打印

    awk 'BEGIN{LAST=0} {if($1>LAST) print $1; LAST=$1}'

    • 逐个比较打印递增数列

    awk '{total+=$1} END {print total}' a.txt

    • 统计列值

    awk '{printf "%c", $1}' a.txt

    • 格式化输出

    awk '{print match($1, "1")}' a.txt

    • 打印第一列第一个1的位置,没有打印0

    awk '{gsub(/ab/,"cd",$1); print $0}' a.txt

    • 第一列字符串替换

    awk '{MAP[$1]=$2} END {for(I in MAP){print I, MAP[I]} }' a.txt

    • 字典存储和提取
  • 相关阅读:
    关于Linux 上建立生成/添加SSH公钥
    sql随机插入数据--记录
    centos 安装搜狗
    centos yum命令找不到包
    命令行改为图形界面
    CentOS7l联网
    .net mvc 框架实现后台管理系统 3
    .net mvc 框架实现后台管理系统 2
    .net mvc 框架实现后台管理系统
    爬取猫眼数据
  • 原文地址:https://www.cnblogs.com/jhc888007/p/7041637.html
Copyright © 2011-2022 走看看