2015-04-07 39 views
-1

我希望有人能夠闡明我如何可以在unix中排序一組grepped值。grepping後排序與終端

例如,如果我有一個列表,如;

  • qp_1_v2
  • qp_50_v1
  • qp_51_v4
  • qp_52_v1
  • qp_53_v1
  • qp_54_v2
  • qp_2_v1,

是有辦法進行排序數值使用通配符即排序QP _ * _ V1;其中*將被讀作一個數字,然後按照這個排序(忽略在之前和之後出現的任何內容)。我目前發現的問題是,gp_52_v2總是作爲字符串讀取,因此我必須將gp_和_v僅留下數字,然後進行排序。

我希望這是有道理的...

在此先感謝。

編輯:如果有人知道如何去做,會有點不錯。如果gp_50存在3次後綴爲_v1,_v2,_v3列出gp_50_v3。因此,這個列表仍然包含各種版本的文件,但只有每個文件的最高版本纔會輸出到終端。

+0

看看[man page for sort](http://linux.die.net/man/1/sort),特別是'-n'開關(也可能是'-k'開關) 。 –

回答

1

ls | cut -d'_'-f 2 |排序

你的情況的替代LS爲您grep命令

編輯:我在輸出之前把例如被切斷,如果你想要的文件使用這個原來的名字:

ls |排序-k2,2g -t「_」

ķ是場的數量進行比較

是最大的字符數來比較

是分隔符

+1

感謝您澄清這一切。它幫助了很多:) –