小编Siv*_*ram的帖子

如何使用awk根据两个单独的字段数据过滤文件?

输入文件由 3 个字段组成,以“|”分隔 如下:

TeamId|TeamName|TotalPlayers
Run Code Online (Sandbox Code Playgroud)

TeamId 由唯一编号组成。TeamName 由几支英超足球队和 TotalPlayers 字段中相应的球员数组成。

其中2条记录如下:(这些记录属于可见测试用例之一)

103|Manchester United|12

105|Manchester City|13
Run Code Online (Sandbox Code Playgroud)

代码要求:

我必须输出以曼彻斯特开头并拥有最多玩家数量的 TeamName。如果没有球队以曼彻斯特开始,那么它不应该是任何输出。即在上面的测试案例中,输出应该是曼城。

我的解决方案:

awk 'BEGIN{FS = "|";OFS = ",";}{if($2 ~ /^Manchester/){print $2, $3}}' | sort -n -k2 | awk -F , '(NR==1){print $1}'
Run Code Online (Sandbox Code Playgroud)

这提供了正常测试用例的预期输出,但隐藏的测试用例失败了。我可以对此进行哪些更改或任何其他更简单的方法来实现相同的...

还推荐任何我可以通过解决来练习此类 Unix 编码问题的网站。

unix awk

3
推荐指数
1
解决办法
67
查看次数

处理循环异常

a = 6
item_list = [1,2,3,4,5]
for items in item_list:
    if items == a:
        print("match found")
    else:
        print ("no match")
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我希望在完成所有迭代后只打印一次“不匹配”;不是每次迭代。如何修改代码?

python for-loop exception

0
推荐指数
1
解决办法
52
查看次数

标签 统计

awk ×1

exception ×1

for-loop ×1

python ×1

unix ×1