[英]Sorting on a numerical value using csvfix for linux - turns numbers to strings
我正在使用csvfix根據第二列中的整數(計數器)值對CSV文件進行排序。 但是,似乎csvfix在執行排序之前將雙引號放在文件中的所有字段周圍,並將它們轉換為字符串。 結果是按字符串值對行進行排序,以使“ 1000”位於“ 2”之前。
有一個命令行選項-smq
應該應用“智能引號”,但這對我沒有幫助。 如果我使用命令csvfix echo -smq file.csv
,則輸出在數字字段周圍沒有引號,但是當我將其通過管道csvfix sort -f 2 file.csv
到csvfix sort -f 2 file.csv
,文件被寫成不帶引號,但仍按“字符串順序”排序”。 是否在排序命令中包含-smq標志都沒有區別。
另外,我希望csvfix忽略字符串標題的第一行。 Csvfix問題跟蹤聲稱這已經實現,但是我只能找到-ifn
標志,它似乎完全切掉了標題行。
這些似乎是此工具的基本功能,因此我可能缺少一些非常簡單的東西。 希望有人在這里使用csvfix並弄清楚。
根據csvfix的在線文檔 ,sort具有用於數字排序的N
選項:
csvfix sort -f 2:N file.csv
話雖這么說,CSV 並不是用於文本操作的特別好的格式 。 如果可能的話,最好選擇DSV(定界符分隔的值),例如Tab或Pipe split,以便您可以簡單地將輸出通過管道傳遞給sort
,它具有使用所需的任何排序方法進行按字段排序的足夠功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.