";"で区切られたフィールドを持つcsvファイルがあります。 8つのフィールドがあり、最初の4列でデータを並べ替えたい(最初の列を1列目、次に2列目など)Bash:最初の4列でCSVファイルをソート
これはLinuxのコマンドラインからどうやって行えますか?
オープンオフィスで試しましたが、私は3列だけを選択できます。
EDIT:データを並べ替えるフィールドのうち、3つのフィールドには数値の文字列と1つの文字列しか含まれていません。どうすればsort
コマンドでこれを指定できますか?
";"で区切られたフィールドを持つcsvファイルがあります。 8つのフィールドがあり、最初の4列でデータを並べ替えたい(最初の列を1列目、次に2列目など)Bash:最初の4列でCSVファイルをソート
これはLinuxのコマンドラインからどうやって行えますか?
オープンオフィスで試しましたが、私は3列だけを選択できます。
EDIT:データを並べ替えるフィールドのうち、3つのフィールドには数値の文字列と1つの文字列しか含まれていません。どうすればsort
コマンドでこれを指定できますか?
試してみてください。
sort -t\; -k 1,1n -k 2,2n -k 3,3n -k 4,4n test.txt
例:
1;2;100;4
1;2;3;4
10;1;2;3
9;1;2;3
> sort -t\; -k 1,1n -k 2,2n -k 3,3n -k 4,4n temp3
1;2;3;4
1;2;100;4
9;1;2;3
10;1;2;3
sort -k
では、ソートキーを定義できます。 man sort
から:だから
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line).
$ sort -t\; -k1,4
それを行う必要があります。私がセミコロンをエスケープしたことに注意してください。さもなければ、シェルはそれをステートメントの終わりとして解釈します。
感謝。 'sort'は数値かアルファベット順でソートするかどうかを各フィールドに指定することもできますか? (私の最後の編集を参照してください) –
ありがとう。 '1,1n'の意味は何ですか? –
数字でソート – Vijay
よろしいですか?だから、フィールド3に文字列が含まれているとしたら、 '-k 3,3d'を辞書順でソートするでしょうか? –