bash/shell *nix コマンド/スクリプトを学習しようとしています。なので、pythonのプログラムを書くより、bash/awkなどでやってみようと思ったのですが、なかなか手こずりました。私は巨大なテキスト(実際にはcsv)ファイルを持っています
id_1, id_2, some attributes.
このファイルを id2 に基づいて並べ替えたいですか? どうすればいいですか?ありがとう
--key
のオプションを使用しますsort
。
たとえば、次の例ではinput.csv
、2番目のフィールドを(フィールド区切り文字としてコンマを使用して)ソートし、出力をに書き込みますoutput.csv
。
sort --key=2,2 -t',' input.csv > output.csv
-n
ps数値ソートを行う場合は、このオプションを使用することを忘れないでください。
詳細については、sortのマニュアルページを参照してください。
sort -t, -k2 filename.csv
確認するシェルはありませんが、基本的にはセパレータとソートキーを指定する必要があります
sort(1)の-kオプションを使用できます
-k、-key = POS1 [、POS2]
start a key at POS1, end it at POS2 (origin 1)
コマンドカットをチェックアウトします。
cat file.cvs | cut -d";" -f 2 | sort
csvはセミコロンで区切られていると思いますが、変更できます。
別の名前で保存します。
cat file.cvs | cut -d";" -f 2 | sort > newfile.txt