0

我正在尝试对看起来像这样的条目进行排序,只是格式化与一个区域相对应的文本数据,使用这些区域的天文坐标和名称。我想根据大括号内的名称来组织这些区域。

圆(20:34:36.717,+40:51:51.90,15“)#文本= {tadpole4h}

圆(20:25:28.500,+41:08:20.80,15“)#文本= {tadpole33}

圆(20:32:40.867,+41:51:25.24,15“)#文本= {tadpole45}

根据蝌蚪场后面的数字,我对 linux 比较陌生,但我认为我是从查看其他堆栈问题中得出的。这是我的破解:

sort -k54,56 -n test.reg

sort -k54,55 -n < test.reg

sort -k55,57 -n < test.reg

sort -k55,56 -n < test.reg

还尝试了 k 和 n 交换并完全拼出每个部分。我正在考虑搜索的另一种方法是,如果我可以使用通配符到达蝌蚪字符串,然后从那里排序,但我不知道如何让通配符进行排序。

4

1 回答 1

0

您可以使用 sed 为每一行添加蝌蚪编号的前缀,然后根据此前缀对您的行进行排序,对于您正在考虑的 .* 事物:

sed 's/.*tadpole\([^}]*\)}/\1 &/' test.reg | sort -t' ' -k1

您还可以在打印之前删除前缀:

sed 's/.*tadpole\([^}]*\)}/\1 &/' test.reg | sort -t' ' -k1 | sed 's/^[^ ]* //'
于 2013-03-19T00:06:27.897 回答