zoukankan      html  css  js  c++  java
  • awk,seq,xarg实例使用

    [root@localhost awk]# seq 10|xargs -n 2 > file
    [root@localhost awk]# seq 10  -1 1|xargs -n 2 > file1
     
    xrags -n 2【表示每次批处理的数量为2个,默认的间隔为“ ”】
    seq 10 -1 1【表示生成10个数字,逆序输出,步长为1】
     
     
    [root@localhost awk]# cat file1 
    2 3 
    4 5
    6 7 
    8 9 
    1 0
     
    [root@localhost awk]# cat file |awk '{print $1}'
    1
    3
    5
    7
    9
    [root@localhost awk]# awk '{print NR}' file file1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@localhost awk]# awk '{print NR,FNR}' file file1
    1 1
    2 2
    3 3
    4 4
    5 5
    6 1
    7 2
    8 3
    9 4
    10 5
    [root@localhost awk]#
     
    [root@localhost awk]# awk 'NR==FNR{a[NR]=$1}NR!=FNR{print a[FNR],$2}' file file1
    1 93 75 57 39 1
    [root@localhost awk]#
    awk的详解:
    awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
    awk处理过程: 依次对每一行进行处理,然后输出
    特殊要点:
    $0           表示整个当前行
    $1           每行第一个字段
    NF          字段数量变量
    NR          每行的记录号,多文件记录递增
    FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
    \t            制表符
    \n           换行符
    FS          BEGIN时定义分隔符
    RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
    ~            匹配,与==相比不是精确比较
    !~           不匹配,不精确比较
    ==         等于,必须全部相等,精确比较
    !=           不等于,精确比较
    &&      逻辑与
    ||             逻辑或
    +            匹配时表示1个或1个以上
    /[0-9][0-9]+/   两个或两个以上数字
    /[0-9][0-9]*/    一个或一个以上数字
    FILENAME 文件名
    OFS      输出字段分隔符, 默认也是空格,可以改为制表符等
    ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
    -F'[:#/]'   定义三个分隔符
     
    [root@localhost awk]# paste file3 file4
    1    9
    3    7
    5    5
    7    3
    9    1
    [root@localhost awk]# paste file3 file4|tr "\t" " "
    1 9
    3 7
    5 5
    7 3
    9 1
    paste 指令会把每个文件以列对列的方式,一列列地加以合并。
    -d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
    -s或--serial  串列进行而非平行处理。
     
     
     

    本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/p/11624011.html

  • 相关阅读:
    主键、外键和索引的区别
    设置session超时的三种方式
    redis常用操作
    timestamp 转 date 处理后再转timestamp
    fragment在水平/垂直时的应用
    Activity堆栈管理
    ORMLite的使用
    onItemLongClick事件的监听
    Bundle的使用
    有关implicit Intent的使用
  • 原文地址:https://www.cnblogs.com/topass123/p/11624011.html
Copyright © 2011-2022 走看看