1

次のような ls 出力を持つ

GGGG_3.0.3_98/
GGGG_3.0.3_d_100/
GGGG_3.0.3_d_101/
GGGG_3.0.3_d_99/
GGGG_3.0.4_104/
GGGG_3.0.4_105/
GGGG_3.0.4_106/
GGGG_3.0_87/
GGGG_3.0_89/
GGGG_3.0_90/
GGGG_3.0_91/
GGGG_3.0_92/
GGGG_3.0_93/
SSS_2.2.3_01/
SSS_2.2.3_02/
SSS_2.2.3_03/
TTT_2.8.3_29/

接尾辞で並べ替えられた要素を取得する方法は?

また、この例で 106 が最後のサフィックスであることを知るために使用できるクイック コマンドはありますか? 申し訳ありませんが、この例の「接尾辞」が最後のアンダースコアに続くすべてのものである

ことは明確ではありませんでした。

4

1 に答える 1

3
ls ... |awk -F'[_/]' '{f=$(NF-1)>f?$(NF-1):f}END{print f}'

あなたにあげます106

サフィックスでソートするには:

ls..|awk -F'[_/]' '{print $(NF-1), $0}'|sort -n|sed 's/.* //'

ご了承ください

  • チェーンは必要ありawk|sort|sedません。awk は単独で実行できます (asort/asorti による)。しかし、それは最初に、汚い(私は知っています)そして迅速に現れました。

  • ファイル/ディレクトリ名にスペースが含まれていると、機能しない可能性があります。しかし、それは修正可能です。たとえば、目に見えない文字をセパレータとして使用します。

于 2013-07-03T16:52:51.320 に答える