Grep
有沒有辦法對 csv 文件的 grep 輸出進行排序?
我有一個 csv 文件,我需要在其中進行搜尋。問題是其中的數據太多,並且查看輸出有點問題。看起來像這樣
col1,col2,...col23 1,123,...,12.01 43,1123,...,142.455 12,63,...,723.1122 ...
因此,在對其應用一些
grep
模式之後,我希望輸出按col23
降序排序。col23
包含浮點數。有沒有辦法做到這一點?我的意思是這樣的:
grep "pattern" the_file.csv | ...sort it
採用:
grep "pattern" the_file.csv | sort -t, -nk 23 | column -ts,
或者
grep "pattern" the_file.csv | sed 's/,/ /g' | sort -nk 23 | column -t
使用指數符號
sort -g
代替sort -n
解釋:
sort -k 23
: 按第 23 列排序sort -n
: 根據字元串數值比較sort -g
:按一般數值比較sort -t,
: 用分隔符排序,
column -t
: 根據空格或使用分隔符 (-s<delimiter>
)創建列sed 's/,/ /g'
: 用所有行上的空格替換 (s
) 任何出現的 ( ),``' '``g