-1

この仕事であなたの助けが本当に必要です。次のテキストファイルがあります。

0001030111
0011030611
0003030113 
0002030112          
0006030311
0004030114       
0007030311
0012030612

そのようなものを得るために、7 番目と 8 番目の列の結果で並べ替えたいと思います。

0001030111
0003030113
0002030112
0004030114
0006030311
0007030311
0011030611
0012030612
      ^^
      Sort by these positions.

しかし、使用:

sort +0.6 -1.9 -s setup.txt > sorted.txt

希望する順序で表示されないものを取得します。(下記を参照してください)

0001030111
0002030112
0003030113
0004030114
0007030311
0006030311
0011030611
0012030612

それを手伝ってくれませんか?まことにありがとうございます!!!

4

2 に答える 2

0

廃止された構文を使用するには、環境変数を設定して有効にする必要がある場合があります。

_POSIX2_VERSION=201112 sort +0.6 -1.9 -s setup.txt > sorted.txt

または、最新の構文を使用します。

sort -k1.7 -k1.8 -s setup.txt > sorted.txt
于 2012-06-12T18:37:46.700 に答える
0

0.n表記 ( なし)を使用してソートする場合-k、最初の列の最初の char に番号が付けられ0.0ていること、および1.n指定によって、フィールド区切り値 (デフォルトのスペース char) によって定義されるデータの 2 番目の列が暗黙指定されていることを思い出してください。これも設定できます。のように-t":"(あなたの例ではありません)。

したがって、問題の解決策は(使い慣れた構文を使用して)だと思います

sort +0.6 -0.7 -s setup.txt > sorted.txt
#---------^^^^^--- note change here

申し訳ありませんが、現在これをテストする方法がありません。

これが役立つことを願っています。

于 2012-06-12T19:50:26.963 に答える