天天看點

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
bb