簡體   English   中英

awk結合2個命令用於csv文件格式化

[英]awk combine 2 commands for csv file formatting

我有一個包含4列的CSV文件。 我想先:

  1. 打印每列的前10個項目
  2. 僅打印第三列中的項目

我的方法是將第一個awk命令傳遞到另一個命令中,但是我沒有得到我想要的:

awk 'NR < 10' my_file.csv | awk '{ print $3 }'

唯一缺少的是-F。

awk -F "," 'NR < 10' my_file.csv | awk -F "," '{ print $3 }'

您無需兩次運行awk。

awk -F, 'NR<=10{print $3}'

這將為記錄號(行)小於或等於10的每一行打印第三個字段。

請注意, <<=不同。 前者匹配記錄為1到9,后者匹配記錄為1到10。 如果需要十條記錄,請使用后者。

請注意,這將遍歷整個文件,因此,如果要優化性能,請執行以下操作:

awk -F, '{print $3} NR>10{exit}'

這將打印第三列。 然后,如果記錄號大於10,它將退出。 不會單步瀏覽整個文件。

還請注意,awk的“ CSV”匹配非常簡單; awk無法理解帶引號的字段,因此記錄如下:

red,"orange,yellow",green

有四個字段,其中兩個帶有雙引號。 YMMV取決於您的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM