の最後のフィールドに区切り文字を使用した後どのようにソート例えばbashのスクリプト
は、コマンドからの我々は結果を得る「前」と呼んでみましょう、この結果はテキスト
の行が含まれていると仮定することができますこのテキストを印刷する前に、区切り文字を使ってソートするためにsortコマンドを使いたいと思っています。この場合
は、区切り文字は「*」
事は、私はいつものラインが私は私の並べ替えをしたいという
text*text***text*********text..*numberstext
のようなものであるならば、たとえば最後のフィールドでソートしたい、ですすべての行は、私はちょうど掲示ラインの通りであった場合、ソートnumberstext
に、この場合には、最後のフィールドを使用すると、それは私だけで共同することができます
簡単だろうすべての行が同じ形をしている、その後UNT区切り文字を使用したときに作成されているフィールド(我々はN個のフィールドがあるとします)と、このコマンドprevious command | sort -t * -k N -n
ではなくを適用するには、いくつかのラインはそのようなことができます:
あなたが見ることができるように区切り文字として文字*を使用した場合text:::***:*numberstext
は、私はいつも最後のフィールドを見つけるために、私は方法を探している最後のフィールド基本的に
を使用してソートしたい
私はそれが
previous command | sort -t * -k $some_variable_denoting_the_ammount_of_fields -n
ようなものかもしれないと考えていたが、私はそのようなものがあるかどうかわからない。..
感謝を:)
データを「正規化」する前にフィルターを追加して、各レコードが同じ数のフィールドを持つようにしなければなりません。がんばろう。 – shellter
しかし、これは可能ではありません。私は出力が入力のようになりたいがソートします。もしあなたが提案したようにすれば、出力は入力と異なるでしょうか? – jonathan
はい、出力はdiffです。もう1つの選択肢は、好みのプログラミング言語でカスタムソートを書くことです。行きましょう。がんばろう。 – shellter