簡體   English   中英

使用Linux的csvfix對數值進行排序-將數字轉換為字符串

[英]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.csvcsvfix 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.

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