我有一个包含以下格式数据的文件,
File: Test.txt
org.apache.hive.v.0.3.5
org.apache.pig.v.0.2.3
org.apache.hadoop.0.1.1
org.apache.v.0.2.5
此记录应根据版本号进行排序,我尝试使用 awk 命令但无法得到正确的答案。我应该遵循哪种方法?
答案 0 :(得分:1)
我认为这只会是丑陋的,因为你想要排序的列只能通过它们的位置与行尾(最后三列)比较而显着,所以awk
不会出现削减它。
您可以使用awk -F"." 'BEGIN{OFS=" "}{print $(NF-2),$(NF-1),$NF,$0}' Test.txt | sort -nk1,3 | sed 's/^[0-9].*\s[0-9].*\s[0-9].*\s//g'
将它们移动到字符串的前面,然后使用sort命中它,然后使用sed从记录前面刮掉那些排序字段:
sed
也许有些<number>.<number>.<number>
专家可以清理一下,但这应该可以自己做(这假设版本号总是-webkit-overflow-scrolling