• awk 使用技巧


    <pre name="code" class="sql">仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk  'BEGIN{FS="|"}{for (i=1;i<=NF;i++) print length($i)}' 1.txt
    11
    3
    3
    仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|' '{for (i=1;i<=NF;i++) print length($i)}' 1.txt        
    11
    3
    3
    
    -FS 设置输入域分割符 等价于命令行-F选项(默认是tab或者空格)
    
    -RS 输入记录分割符号,默认是换行
    
    --NF 域的个数
    -NR 记录的条数
    
    仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|'  '{print NF}' 1.txt
    3
    仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|'  '{print NR}' 1.txt
    1
    
    
    OFS 输出域分割符,默认是空格 默认的输出域分割符是一个空格保存在OFS中
    
    ORS 输出记录记录分割符(默认是回车)
    
    仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> cat 1.txt
    aaaaa|aa1111|4444|cccc|
    bbb|ddd13|353
    仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> awk 'BEGIN{FS="|";OFS="#"}{print $1,$2,$3}' 1.txt
    aaaaa#aa1111#4444
    bbb#ddd13#353
    
    此时输出的域分割符变为#
    
    仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> awk 'BEGIN{FS="|";ORS="#"}{print $1,$2,$3}' 1.txt
    aaaaa aa1111 4444#bbb ddd13 353#仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> 
    
    此时的记录分割符号变为#
    


    
                                        
    
  • 相关阅读:
    [导入]Interesting Finds: 2007.12.17
    [导入]Interesting Finds: 2007.12.15
    [导入]Interesting Finds: 2007.12.13
    Interesting Finds: 2007.12.22
    吾生也有涯,而知也无涯。
    Hello world
    学习了clipboard复制剪切插件的使用
    在博客园学习成长
    命名空间概述
    Linux vi/vim
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352222.html
Copyright © 2020-2023  润新知