zoukankan      html  css  js  c++  java
  • Shellz中awk的简单用法

    其实shell脚本的功能常常被低估。在实际应用中awk sed 等用法可以为shell提供更为强大的功能。下面我们将一下awk调用的简单方法进行了总结。方便同学们学习:

    awk的简单用法:

    第一种调用:

    awk ‘BEGIN {print “start”;var=1} {print $1, $2} END{var=$3}’file

    使用单引号括起awk的命令,{ }代表不同的动作中间的代码段(红色部分):在执行每一条记录时都会执行。

    BEGIN 代表开始输入文件之前的操作

    END 代表输入文件结束之后的操作

    第二种调用方法:

    awk -f test.awk file

    test.awk文件的写法:

    #! /usr/bin/awk –f

    BEGIN {print “start”; var=1}

    { print $1, $2;

    arg=$3; //////可以用分号分开不同的操作。

    print arg

    }

    END {printf(“the test is over ”}

    第三种调用方法:

    给test.awk文件添加执行权限: chomd a+x test.awk

    ./test.awk file

    参数和表达式使用:

    1)

    -F “:” 代表域的分割符是 冒号。

    awk -F “:” ‘{print $1, $2}’ file

    或者使用FS变量

    awk ‘BEGIN{FS=”:”; var=2} {print $1, $2} ‘ file

    2)支持 printf的格式化输出

    awk -F “:” ‘{printf(“%d, %d ”, $1, $2}’ file

    3) $0代表所有的域

    $1代表第一个域

    系统变量 FILENAME代表当前文件名

    系统变量 ARGC代表当前传入参数的个数

    系统变量 ARGV代表当前传入参数的数组

    系统变量 FS 代表字段分割符

    系统变量 NF 代表当前记录的域数量

    系统变量 NR 代表当前记录数

    print NR;print NF;

    4)支持if else 语句。

    {

    If ($2 >= 0)

    { print “$2 is >= 0”;

    print “$2 is greate 0”

    }

    else

    {

    print “$2 is < 0”;

    print “$2 is < 0”

    }

    }

    5)可以在shell脚本中使用:

    可以方便的将awk获得值赋值给一个变量。

    (1)#!/bin/bash

    var=` grep -e “” file |awk -F “:” ‘print $2’ `

    echo $var

    (2)#!/bin/bash

    var= ` ./$1 $2 `

    其中: $1 是带有执行权限的 test.awk文件

    $2 时需要检索的文件file

    运行: ./test.sh test.awk file

  • 相关阅读:
    react 样式继承 属性传递
    react css-in-js
    react 利用高阶组件给页面加上动画
    react路由过渡动画效果
    REACT列表过度
    react 过渡动画组件
    VueJs之计算属性
    VueJs之判断与循环
    VusJs之入门
    MYSQL之数据报表
  • 原文地址:https://www.cnblogs.com/CDHQ1666760231/p/10364834.html
Copyright © 2011-2022 走看看