目的の順序で行を並べ替える

目的の順序で行を並べ替える

ファイルには次の行が含まれています。

acb/xyz/row<t>
acb/xyz/row<t>
abc/xyz/row<1>
abc/xyz/row<1>
abc/xyz/row<0>
abc/xyz/row<0>
abc/xyz/row<3>
abc/xyz/row<3>
abc/xyz/row<2>
abc/xyz/row<2>
abc/xyz/row<4>
abc/xyz/row<4>
abc/xyz/row<b>
abc/xyz/row<b>

だから私は出力が欲しい。

acb/xyz/row<t>
acb/xyz/row<t>
abc/xyz/row<b>
abc/xyz/row<b>
abc/xyz/row<0>
abc/xyz/row<0>
abc/xyz/row<1>
abc/xyz/row<1>
abc/xyz/row<2>
abc/xyz/row<2>
abc/xyz/row<3>
abc/xyz/row<3>
abc/xyz/row<4>
abc/xyz/row<4>

t(上部)とb(下部)が数字の前にあり、その順序で並べ替えられます。

ベストアンサー1

いつでもDecor-sort-un装飾方法を使用して-2t-1に割り当てることができますb

<your-file awk -F'[<>]' '
  {print $2 == "t" ? -2 : $2 == "b" ? -1 : $2, $0}' |
  sort -n |
  cut -d' ' -f2-

おすすめ記事