zoukankan      html  css  js  c++  java
  • 1、awk打开多个文件的方法

    转载:http://www.cnblogs.com/Berryxiong/p/6209324.html

    1、当awk读取的文件只有两个的时候,比较常用的有三种方法
    (1)awk 'NR==FNR{...}NR>FNR{...}' file1 file2

    (2)awk 'NR==FNR{...}NR!=FNR{...}' file1 file2
    (3)awk 'NR==FNR{...;next}{...}' file1 file2

    next表示下一个命令不被执行

    2、当awk处理的文件超过两个时,显然上面那种方法就不适用了。因为读第3个文件或以上时,也满足NR>FNR (NR!=FNR),显然无法区分开来。
    所以就要用到更通用的方法了:

    ARGC        The number of command line arguments (does not include
                       options to gawk, or the program source).   命令行参数的个数
    ARGIND      The index in ARGV of the current file being processed. 命令行中文件序号
    ARGV        Array of command line arguments. The array is indexed
                       from 0 to ARGC - 1. Dynamically changing the contents
                       of ARGV can control the files used for data. 命令行参数数组

     awk 'ARGIND==1{a[$1]=$2}ARGIND==2{if($0 in a){print ">"a[$0]}else{print $0}}' list OsJ.pe 

    (1)ARGIND 当前被处理参数标志: awk 'ARGIND==1{...}ARGIND==2{...}ARGIND==3{...}... ' file1 file2 file3 ...
    (2)ARGV 命令行参数数组: awk 'FILENAME==ARGV[1]{...}FILENAME==ARGV[2]{...}FILENAME==ARGV[3]{...}...' file1 file2 file3 ... 
    (3)把文件名直接加入判断: awk 'FILENAME=="file1"{...}FILENAME=="file2"{...}FILENAME=="file3"{...}...' file1 file2 file3 ...

  • 相关阅读:
    Kibana
    Filebeat使用
    leetcode刷题笔记七十三题 矩阵置零
    leetcode刷题笔记七十二题 编辑距离
    leetcode刷题笔记七十一题 简化路径
    leetcode刷题笔记七十题 爬楼梯
    leetcode刷题笔记六十九题 X的平方根
    python 冒泡算法
    hive 函数
    Task07:类、对象与魔法方法(3天)
  • 原文地址:https://www.cnblogs.com/renping/p/9176735.html
Copyright © 2011-2022 走看看