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