• 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> 
    
    此时的记录分割符号变为#
    


    
                                        
    
  • 相关阅读:
    C++: std::string 与 Unicode 如何结合?
    C++ :enum及其使用
    C++标准库(二)
    #ifdef 中的逻辑与或操作
    这是我的第一篇博客
    C++标准库(一)
    ASP.NET基础05_页面跳转与传值
    ASP.NET基础06_琐碎
    ASP.NET基础04_简单数据绑定与App_Offline.htm文件
    ASP.NET基础01_验证与缓存
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352222.html
Copyright © 2020-2023  润新知