2019年12月10日 星期二

awk不要分析csv檔案的第一行

許多csv (comma-separated values) 檔案的第一列會是欄位名稱,通常使用awk會不需要分析,解決方式如下:
  • awk -F',' -v OFS=',' '{if (NR==1) {next} else {print $0}}' input.csv > output.csv

上述的指令說明如下:
  1. 輸入檔案是input.csv,輸出檔案是output.csv
  2. -F',' -v OFS=',':awk預設用空格或tab分欄位,這邊的-F是強制awk對輸入檔使用逗點當分隔符號;且輸出的時候也強制使用逗點
  3. if (NR==1) {next}:NR處理的行數(ordinal number of the current record),從1開始;有些文件會用FNR (ordinal number of the current record in the current file)。這句的意思代表看到第一行就跳過不處理,去處理其他行
  4. else {print $0}:對於其他直接印出,這邊可以另外加入一些操作

參考資料

_EOF_

沒有留言:

張貼留言