タグ付けされた質問 「sort」

テキストファイルやその他のデータの並べ替え(並べ替えユーティリティなど)。

3
パイプ「|」で行をソートせずにソート その中に正しく
パイプで区切られた単純なデータを並べ替えようとしています。ただし、並べ替えは実​​際には並べ替えではありません。ヘッダー行を下に移動しますが、241で始まる2つの行は24で始まる行で分割されています。 cat sort_fail.csv column_a|column_b|column_c 241|212|20810378 24|121|2810172 241|213|20810376 sort sort_fail.csv 241|212|20810378 24|121|2810172 241|213|20810376 column_a|column_b|column_c 列ヘッダーはファイルの下部に移動されているため、並べ替えが明らかに処理しています。しかし、実際の値は私が期待するようにソートされていません。 この場合、私はそれを回避しました sort sort_fail.csv --field-separator='|' -k1,1 しかし、それは必要ではないように感じます。ソートがソートではないのはなぜですか?
17 sort 

4
日付で並べ替え
元の: 2011年1月23日10:42何か2007.12.20.avi 2009年6月26日何か2009.06.25.avi 2010年2月12日何か2010.02.11.avi 2011年1月29日09:17何か2011.01.27.avi 2011年2月11日20:06何か2011.02.10.avi 2011年2月27日23:05何か2011.02.24.avi 出力: 2011年2月27日23:05何か2011.02.24.avi 2011年2月11日20:06何か2011.02.10.avi 2011年1月29日09:17何か2011.01.27.avi 2011年1月23日10:42何か2007.12.20.avi 2010年2月12日何か2010.02.11.avi 2009年6月26日何か2009.06.25.avi 上記のリスト(オリジナル)を生成しました: ls -A -lR | grep "^-" | sed "s/.\{43\}/&\n/" | grep -v "^-" | while read ONELINE; do if echo $ONELINE | cut -d " " -f3 | grep -o '[0-9][0-9]:[0-9][0-9]' > /dev/null 2>&1; then …
17 sort  busybox 


2
大きなワードリストで重複を削除する最も速い方法は?
大きなワードリストを重複排除する必要があります。いくつかのコマンドを試して、こことここでいくつかの研究を行いました。そこでは、単語リストを重複排除する最も速い方法はawkを使用しているように見えることを説明しています。 awk-> O(n)?sort-> O(n log n)? しかし、これは真実ではないようだ。私のテスト結果は次のとおりです。 sort -u input.txt -o output.txt 実数0m12.446s ユーザー0m11.347s sys 0m0.906s awk '!x[$0]++' input.txt > output.txt 実数0m47.221s ユーザー0m45.419s sys 0m1.260s したがって、sort -uを使用すると3.7倍高速になります。どうしてこれなの?重複排除を行うためのさらに速い方法はありますか? ***********アップデート******** 誰かがコメントで指摘したように、私の単語リストはすでにある程度ソートされている可能性があります。この可能性を排除するために、このPythonスクリプトを使用して 2つのワードリストを生成しました。 List1 = 7 Mb List2 = 690 Mb 結果AWK: List1を リアル0m1.643s ユーザー0m1.565s sysの0m0.062s List2 実2m6.918s ユーザー2m4.499s sys 0m1.345s 結果SORT: List1 …
14 bash  awk  performance  sort 

4
行ごとの単語数で行を並べ替える
与えられた入力: hello: world foo bar baz bar: baz: bin boop bop fiz bang beep bap: bim bam bop boatkeeper: poughkeepsie 次のように、一番上で、少なくとも最後で、ほとんどの単語に並べ替えたいと思います: baz: bin boop bop fiz bang beep hello: world foo bar baz bap: bim bam bop boatkeeper: poughkeepsie bar: sortまたは他のツールでこれを行うにはどうすればよいですか?

5
find -exec lsの出力をソートします
find … -exec ls -ls ;ファイル名でアルファベット順にソートして出力することは可能ですか? これは私のcronコマンドです: find /home/setefgge/public_html -type f -ctime -1 -exec ls -ls {} \; ほとんどの場合、このコマンドは正常に機能します。ただし、結果は意味のある順序でソートされません。ファイル名フィールドで並べ替える場合、非常に役立ちます。
14 find  ls  sort 

4
16進値で並べ替え
coreutilsを使用sortして、16進値(フィールド)で数値的にソートするにはどうすればよいですか?私はの線に沿って何かを期待していた sort -k3,3x file_to_sort ただし、そのようなxものは存在しません。 編集:私がこれまでに思いついた最良の解決策は: { echo ibase=16; cut -d' ' -f3 file_to_sort; } | bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2- ここでcut -d' ' -f3検索フィールドを分離し(これは-k3,3—これはもちろん変化する可能性があります)、bc10進数に変換します(大文字の16進数が必要で、0x接頭辞なしで、私の場合と一致します)。次に、列を結合、並べ替え、分割します。
14 sort  coreutils 

1
最初と2番目の列でファイルを並べ替える
2列目の最初の要素でソートすることにより、2列のタブ区切りテキストファイルを操作するにはどうすればよいですか(最初の列の要素が同じ場合のみ)。 例: 入力ファイル1 A 1-2 A 6-8 A 3-4 B 7-10 B 5-9 期待される出力:ファイル2 A 1-2 A 3-4 A 6-8 B 5-9 B 7-10
13 sort 


2
列で出力を並べ替える
このコマンドを使用したいfind -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done(ここから)。出力は基本的に ./kennel: 11062 ./shadow: 15449 ./ccc: 9765 ./journeyo: 14200 ./norths: 10710 そして、最大から最小の数字でソートします。しかし、私は作り方sort、または別の列で動作するものがわかりません。

5
行として複数行のテキストファイルを並べ替える
この形式のテキストファイルがあります。 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 このファイルをKEY行ごとに並べ替えて、結果に次の4行を含めたいので、並べ替えられた結果は次のようになります。 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 これを行う方法はありますか?

7
`.bib`ファイルのBibTexエントリを(どのキーでも)ソートする方法は?
私はLaTeXで作業し、Gitでバージョン管理を行っています。書誌管理にはメンデリーを使用します。 問題は、Mendeleyが.bibエクスポートを同期するたびに、それらの順序が異なるため、書誌のバージョン管理がはるかに難しくなることです。 私のアイデアは、.bibコミットする前に毎回、ファイル内のBibTexエントリをソートすることです。 私を助けてくれませんか、これをスマート(ショート&スイート)な方法で行う方法はありますか?:) PSこのルーチンを手動で実行できます。git統合は必要ありません。プログラム/スクリプトで.bibファイルをソートしたいだけです。

7
join:「ファイル2がソートされていない」
_jeter3.txtと_jeter1.txtの2つのファイルがあります 私はそれらが両方とも20列でソートされていることを確認しました sort -c sort -t ' ' -c -k20,20 _jeter3.txt sort -t ' ' -c -k20,20 _jeter1.txt #no errors しかし、私がjoin両方のファイルにしたいときにエラーがあります、それは2番目のファイルがソートされていないと言います: join -t ' ' -1 20 -2 20 _jeter1.txt _jeter3.txt > /dev/null join: File 2 is not in sorted order 理由がわかりません。 cat /etc/*-release #FYI openSUSE 11.0 (i586) VERSION = …
13 sort  join 

6
行ブロックの並べ替え
4n行を含むファイルがあります。これは、8行を含む抜粋です 6115 8.88443 6116 6.61875 6118 16.5949 6117 19.4129 6116 6.619 6117 16.5979 6118 19.4111 6115 8.88433 私がやりたいのは、ブロックをソートすることです。各ブロックは、最初の列に基づいて4行で構成されています。抜粋の出力は次のようになります。 6115 8.88443 6116 6.61875 6117 19.4129 6118 16.5949 6115 8.88433 6116 6.619 6117 16.5979 6118 19.4111

4
いくつかの追加の制約を使用してファイルをランダムにシャッフルします
私には巨大な音楽プレイリストがあり、多くのアルバムを持っているアーティストもいれば、1曲しか持っていないアーティストもいます。プレイリストを並べ替えて、同じアーティストが連続して2回再生しないようにしたり、プレイリストの最初または最後に彼の曲がほとんど収まらないようにしました。 プレイリストの例: $ cat /tmp/playlist.m3u Anna A. - Song 1 Anna A. - Song 2 I--Rock - Song 1 John B. - Song 1 John B. - Song 2 John B. - Song 3 John B. - Song 4 John B. - Song 5 Kyle C. - Song 1 U--Rock …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.