0

我有一个包含 ID、人口、地区和省份的列表,如下所示:

1:517000:405212:Newfoundland and Labrador
2:137900:5660:Prince Edward Island
3:751400:72908:New Brunswick
4:938134:55284:Nova Scotia
5:7560592:1542056:Quebec
6:12439755:1076359:Ontario
7:1170300:647797:Manitoba
8:996194:651036:Saskatchewan
9:3183312:661848:Alberta
10:4168123:944735:British Comumbia
11:42800:1346106:Northwest Territories
12:31200:482443:Yukon Territories
13:29300:2093190:Nunavut

我需要显示人口密度(人口/面积)最低和最高的省份的名称。如何将第 1 列除以第 2 列(小数点后 2 位),但在两侧保持文件信息完整(例如 1:1.28:纽芬兰和拉布拉多)。在那之后,我想我可以把它泵入sort -t: -nk2 | head -n 1sort -t: -nrk2 | head -n 1拉动它们。

给出的推荐命令是 grep。

4

1 回答 1

0

由于您似乎可以控制排序和提取,因此这里有一个适用于您的示例 awk 脚本:

#!/usr/bin/env awk -f

BEGIN {
    FS=":"
    OFS=":"
    OFMT="%.2f"
}

{
    print $1,$2/$3,$4
}
于 2013-04-17T05:25:36.280 回答