文字列値を使用してファイルコンテンツを特定の順序で並べ替える

kar

私は次のようにファイルの内容をごちゃ混ぜにしました:

13,13,GAME_FINISH,
1,1,GAME_START,
1,1,GROUP_FINISH,
17,17,WAGER,200.00
2,2,GAME_FINISH,
2,2,GAME_START,
22,22,GAME_WIN,290.00
2,2,GROUP_FINISH,
32,32,WAGER,200.00
3,3,GAME_FINISH,
3,3,GAME_START,
.... more lines

私はそれをソートし、現在次の形式でファイルの内容を保持しています。

1,1,GAME_FINISH,
1,1,GAME_START,
1,1,GROUP_FINISH,
1,1,WAGER,200.00
2,2,GAME_FINISH,
2,2,GAME_START,
2,2,GAME_WIN,290.00
2,2,GROUP_FINISH,
2,2,WAGER,200.00
3,3,GAME_FINISH,
3,3,GAME_START,
3,3,GROUP_FINISH,
3,3,WAGER,200.00
... more lines

しかし、どうすれば次の形式を取得するためにそれをより適切にソートできますか?3行目と4行目は常に存在するとは限りません。

1,1,WAGER,200.00
1,1,GAME_START,
1,1,GAME_WIN,500.00
1,1,BONUS_WIN_1,1100.00
1,1,GAME_FINISH,
1,1,GROUP_FINISH,
2,2, more lines...

最初の並べ替えには、

sort -t, -g -k2 nameofunsortedfile.csv >> sortedfile.csv

追加情報:

賭け、ゲーム開始、ゲーム勝利、ボーナス勝利、ゲーム終了、グループ終了の順に並べ替えたいと思います。私の現在のソートはこの順序ではありません。ゲームの勝利とボーナスの勝利が常に存在するとは限りません。

私が期待している順序は辞書ではなく、ランダムでもありません。すべての数字には常に賭け、開始、game_finishgroup_finishシーケンスがあります。game_win、game_bonusはオプションです。上記の予想される順序でターゲット1,1の並べ替えを例証する方法を探して、2,2に進み、同じようにします。

デビッドZ

標準のUNIXユーティリティでこれを行う最も簡単な方法は、おそらく各行にフィールドを追加することです。これにより、レコードの種類が希望の順序で並べ替えられます。

declare -A mapping=( ["WAGER"]=1 ["GAME_START"]=2 ["GAME_WIN"]=3 ["BONUS_WIN"]=4 ["GAME_FINISH"]=5 ["GROUP_FINISH"]=6 )
cut -d, -f3 filename.txt | while read; do echo ${mapping["$REPLY"]}; done | paste -d, - filename.txt | sort | sort -s -t, -n -k 2,3 | cut -d, -f 2-

このdeclareステートメントは、各レコードタイプの順序を検索できるようにするマッピングを宣言します。特定の値(12など)は問わない限り、彼らは、ソート順序にしたいと。必要に応じて、文字や単語を使用できます。

次の行は、次のコマンドで構成されています。

  • cut -d, -f3 filename.txt並べ替えたいもの(WAGERまたは何でも)を抽出します
  • while read; do echo ${mapping["$REPLY"]}; done各値(WAGERなど)を取得し、連想配列からの対応する並べ替え可能な値に置き換えますmapping
  • paste -d, - filename.txt これらの値を各行の先頭に貼り付けます。 filename.txt
  • sort | sort -s -t, -n -k 2,3フィールド2、フィールド3、フィールド1(追加したもの)で並べ替える効果があります。sort3つのフィールドをキーとして使用できる場合は、1つのsortコマンドでこれを実行できますが、並べ替えに使用できるフィールドは2つまでです。
  • cut -d, -f 2- 追加されたフィールドを取り除き、元のレコードを残しますが、並べ替えられた順序で

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Linuxで特定の区切り文字を使用してテキストファイルの行を並べ替える

分類Dev

Pythonで特定の順序を使用して要素を並べ替える

分類Dev

Bash:大文字小文字を区別するバイト単位の並べ替えコマンド、またはpython sortコマンドを使用してテキストファイルを並べ替え

分類Dev

Linuxコマンドの並べ替えを使用して、テキストファイルを4番目の列の数値順に並べ替える方法

分類Dev

Symfony Finderコンポーネントを使用してDESCの順序でファイルを並べ替えるにはどうすればよいですか?

分類Dev

コンテンツプロバイダーへのクエリの並べ替え順序を指定する方法

分類Dev

Perlで特定の文字順序で文字列を並べ替える

分類Dev

コマンドを使用してcsvファイルを3列で並べ替えますか?

分類Dev

Pythonを使用してファイル名を特定の順序で並べ替える方法

分類Dev

特定の値の順序でデータテーブルを並べ替える

分類Dev

PowerQueryを使用して特定の順序で並べ替える

分類Dev

PowerQueryを使用して特定の順序で並べ替える

分類Dev

Javascript / AJAXを使用して複数のファイルのコンテンツを特定の順序でロードする方法

分類Dev

Pythonを使用して、.txtファイル内のハイスコアリストを数値(降順)で並べ替える

分類Dev

最初の2列だけでファイルを並べ替え、列の値が同じ場合に備えて入力順序を維持します

分類Dev

特定の順序(ソフトウェアバージョンなど)でfloat値を使用してクエリセットを並べ替える

分類Dev

ドメインベースのリストを使用して文字列の配列をアルファベット順に並べ替える方法

分類Dev

sort_byを使用して、アルファベット順、数値順、特殊文字順に並べ替える方法

分類Dev

ファイルを並べ替えるコンテンツを並べ替える

分類Dev

ファイルがnumpy.loadtxtを介してインポートされるときに、値の昇順でcsvファイルを並べ替える

分類Dev

Pythonを使用してテキストファイル内の特定のインデックスの値を並べ替える

分類Dev

特定の列の値に従ってパンダデータファイルの文字列を並べ替えるにはどうすればよいですか?

分類Dev

Linuxで特定の区切り文字を使用してテキストファイルの行を並べ替える

分類Dev

Javaで巨大なテキストファイルを効率的に読み取り、そのコンテンツを分割して並べ替える方法は?

分類Dev

順序を維持しながら、カンマ区切りファイルを最初の列で並べ替える

分類Dev

特定の順序でファイルを並べ替える

分類Dev

null値のコマンドを使用してcsvファイルを3列で並べ替えますか?

分類Dev

数値のみを抽出し、文字列と整数を含むテキストファイルから昇順で並べ替える方法は?

分類Dev

ファイル内のコンテンツをアルファベット順に並べ替えるにはどうすればよいですか

Related 関連記事

  1. 1

    Linuxで特定の区切り文字を使用してテキストファイルの行を並べ替える

  2. 2

    Pythonで特定の順序を使用して要素を並べ替える

  3. 3

    Bash:大文字小文字を区別するバイト単位の並べ替えコマンド、またはpython sortコマンドを使用してテキストファイルを並べ替え

  4. 4

    Linuxコマンドの並べ替えを使用して、テキストファイルを4番目の列の数値順に並べ替える方法

  5. 5

    Symfony Finderコンポーネントを使用してDESCの順序でファイルを並べ替えるにはどうすればよいですか?

  6. 6

    コンテンツプロバイダーへのクエリの並べ替え順序を指定する方法

  7. 7

    Perlで特定の文字順序で文字列を並べ替える

  8. 8

    コマンドを使用してcsvファイルを3列で並べ替えますか?

  9. 9

    Pythonを使用してファイル名を特定の順序で並べ替える方法

  10. 10

    特定の値の順序でデータテーブルを並べ替える

  11. 11

    PowerQueryを使用して特定の順序で並べ替える

  12. 12

    PowerQueryを使用して特定の順序で並べ替える

  13. 13

    Javascript / AJAXを使用して複数のファイルのコンテンツを特定の順序でロードする方法

  14. 14

    Pythonを使用して、.txtファイル内のハイスコアリストを数値(降順)で並べ替える

  15. 15

    最初の2列だけでファイルを並べ替え、列の値が同じ場合に備えて入力順序を維持します

  16. 16

    特定の順序(ソフトウェアバージョンなど)でfloat値を使用してクエリセットを並べ替える

  17. 17

    ドメインベースのリストを使用して文字列の配列をアルファベット順に並べ替える方法

  18. 18

    sort_byを使用して、アルファベット順、数値順、特殊文字順に並べ替える方法

  19. 19

    ファイルを並べ替えるコンテンツを並べ替える

  20. 20

    ファイルがnumpy.loadtxtを介してインポートされるときに、値の昇順でcsvファイルを並べ替える

  21. 21

    Pythonを使用してテキストファイル内の特定のインデックスの値を並べ替える

  22. 22

    特定の列の値に従ってパンダデータファイルの文字列を並べ替えるにはどうすればよいですか?

  23. 23

    Linuxで特定の区切り文字を使用してテキストファイルの行を並べ替える

  24. 24

    Javaで巨大なテキストファイルを効率的に読み取り、そのコンテンツを分割して並べ替える方法は?

  25. 25

    順序を維持しながら、カンマ区切りファイルを最初の列で並べ替える

  26. 26

    特定の順序でファイルを並べ替える

  27. 27

    null値のコマンドを使用してcsvファイルを3列で並べ替えますか?

  28. 28

    数値のみを抽出し、文字列と整数を含むテキストファイルから昇順で並べ替える方法は?

  29. 29

    ファイル内のコンテンツをアルファベット順に並べ替えるにはどうすればよいですか

ホットタグ

アーカイブ