awk 使用技巧

来源:互联网 发布:cdn和云计算 编辑:程序博客网 时间:2024/05/16 11:51
<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.txt1133仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|' '{for (i=1;i<=NF;i++) print length($i)}' 1.txt        1133-FS 设置输入域分割符 等价于命令行-F选项(默认是tab或者空格)-RS 输入记录分割符号,默认是换行--NF 域的个数-NR 记录的条数仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|'  '{print NF}' 1.txt3仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|'  '{print NR}' 1.txt1OFS 输出域分割符,默认是空格 默认的输出域分割符是一个空格保存在OFS中ORS 输出记录记录分割符(默认是回车)仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> cat 1.txtaaaaa|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.txtaaaaa#aa1111#4444bbb#ddd13#353此时输出的域分割符变为#仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> awk 'BEGIN{FS="|";ORS="#"}{print $1,$2,$3}' 1.txtaaaaa aa1111 4444#bbb ddd13 353#仓库DB-ORACLE /home/dataun/ETL_init/DATA/2014-07-04/CBS> 此时的记录分割符号变为#


                                             
0 0