zoukankan      html  css  js  c++  java
  • awk命令

    语法:

    awk  [options]   'Pattern{Action}'   file

    选项:

    -F  指定分隔符

    -v  设置变量值,

    变量:

    内置变量:

    FS  输入字段分隔符, 默认为空白字符

    OFS  输出字段分隔符, 默认为空白字符

    RS  输入记录分隔符(输入换行符), 指定输入时的换行符

    ORS  输出记录分隔符(输出换行符),输出时用指定符号代替换行符

    NF  number of Field,当前行有多少列,字段数量

    NR  number of ROW,行号,当前处理的文本行的行号。

    FNR  当awk处理多个文件时,分别对每个文件的行数进行计数

    FILENAME  当前文件名

    ARGC  命令行参数的个数

    ARGV  表示的是一个数组,这个数组中保存的是命令行所给定的参数,awk规定,'pattern{ action }'并不被看做是参数,awk被看做为参数。

    举例:

    1、AWK 包含两种特殊的模式:BEGIN 和 END。

    BEGIN 模式指定了处理文本之前需要执行的操作:

    END 模式指定了处理完所有行之后所需要执行的操作:

    [root@localhost] ~$ awk 'BEGIN{print "aaa","bbb"} {print $1,$2} END{print "ccc","ddd"}' t
    aaa bbb
    a b
    h i
    o p
    r s
    u v
    ccc ddd

    2、指定输出分隔符

    [root@localhost] ~$ awk -v OFS="+++" '{print $1,$2}' xargs.txt 
    a+++b
    h+++i
    o+++p
    r+++s
    u+++v

    3、使用变量NR NF

    [root@localhost] ~$ awk '{print NR,NF}' xargs.txt 
    1 7
    2 7
    3 3

    4、使用变量NFR

    [root@localhost] ~$ awk '{print FNR,$0}' 1.txt 2.txt 
    1 aaa bbb
    2 ccc ddd
    1 AAA BBB
    2 CCC DDD

    5、使用变量RS,使用空格作为所谓的行分隔符,也就是说,我们想让awk认为,每遇到一个空格,就换行,换句话说,我们想让awk以为每次遇到一个空格就是新的一行。

    [root@localhost] ~$ awk -v RS=" " '{print FNR,$0}' 1.txt 
    1 aaa
    2 bbb
    ccc
    3 ddd

     6、使用ARGV

    [root@localhost] ~$ awk '{print "aaa",ARGV[0],ARGV[1],ARGV[2]}' 1.txt 2.txt 
    aaa awk 1.txt 2.txt
    aaa awk 1.txt 2.txt
    aaa awk 1.txt 2.txt
    aaa awk 1.txt 2.txt
  • 相关阅读:
    js将数字转为千分位/清除千分位
    mybatis中的$和#的区别
    js处理title超长问题
    mybatis错误 Mapped Statements collection does not contain value for
    bootstrap添加多个模态对话框支持
    java.util.Collections.copy()方法注意点
    list通过比较器进行排序
    jquery对radio和checkbox的操作
    c++类简介
    c++ 类
  • 原文地址:https://www.cnblogs.com/fanren224/p/8467425.html
Copyright © 2011-2022 走看看