問題タブ [uniq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - uniqを使用して最初のn文字のみを比較する方法はありますか?
ドキュメントによると、
http://www.computerhope.com/unix/uuniq.htm
このコマンドを使用して、最初のn文字を無視できます
次のものが欲しいとしましょう
最初の20文字に基づいて同一と一致します。これを行う方法はありますか?
sorting - uniqコマンド-区切り文字オプションを取得し、列に基づいて検索する方法は?
以下は、file.txtという名前のタブで示されたファイルを(列1に基づいて)ソートされています
オプション(ソートコマンドの場合は-tおよび-k)を使用して列1に基づいてuniqコマンドを実行したい
さて、これは非常に簡単ですが、私は自分の道を見つけることができません。
次のように出力を取得できるようにします。
助けてください、よろしくお願いします:)
ruby - ハッシュの配列で複数のキーでグループ化された最大値を見つける方法は?
このような構造を持つデータを持っています。「c」の昇順になります。
「a」と「b」の一意の組み合わせごとにグループ化された「c」の最大値の配列が必要です。
他のキーは保持する必要がありますが、変換には関係ありません。これまでのところ、配列を逆にして(つまり、「c」で降順)、「a」と「b」でuniqし、配列を逆にすることです。しかし、私は常に最初に見つかった一意のアイテムを返す uniq_by の実装に依存しています。仕様にはそうは書いていないので、将来のバージョンで変更される可能性があるため、その動作に依存することは心配です。また、これが本当に非効率的な方法であるかどうかも疑問です。
これを行うためのより良い、より効率的な方法はありますか? より良い方法がある場合は、私が解読できないかもしれない非常に厄介なワンライナーを私に与える代わりに、それを説明してもらえますか.
sed - awk で「uniq -d」をエミュレートするにはどうすればよいですか?
持っていないビジーボックス システムを持っていuniq
ます。重複した行の一意のリストを生成したいと思います。
uniq
エミュレートされたプレーンは次のようにawk
なります。
達成するためにどのように使用できますawk
か(またはsed
、それについては、ではありません):perl
unix - 大きなファイルから重複を削除する
〜20GBのcsvファイルがあります。サンプルファイル:
このファイルの主キーは最初の列です。uniq.csv と duplicates.csv の 2 つのファイルを作成する必要があります。
uniq.csv にはすべての重複しないレコードが含まれている必要があり、duplicates.csv には現在のタイムスタンプを持つすべての重複レコードが含まれます。
uniq.csv
重複.csv
外部R-Wayマージソートアルゴリズムを利用できるように、Unix Sortを使用しています
この大きなファイルを 1 回スキャンするだけで、重複と一意の両方を見つける方法があるのではないかと考えていました。
shell - ソートせずに重複行を削除する
私はPythonでユーティリティスクリプトを持っています:
この単純な機能 (uniq
最初にソートする必要がなく、安定した順序付け) は、単純な UNIX ユーティリティとして利用できる必要がありますね。たぶん、パイプ内のフィルターの組み合わせですか?
質問の理由: どこからでも Python を実行できないシステムでこの機能が必要です。
uniq - Linux でのファイルのマージ
Cygwin を使用して複数のファイルをマージしています。しかし、私のアプローチが正しいかどうかを知りたかったのです。これは質問と議論の両方です:)
まず、私が持っているファイルについての情報を少し:
- どちらのファイルにも、ASCII 文字と非 ASCII 文字が含まれています。
- File1 には7899097行あり、サイズは ~ 70.9 Mbです
- File2 には14344391行あり、サイズは ~ 136.6 Mbです
ファイルのエンコード情報:
これは、2 つのファイルをマージし、並べ替えてから、重複するエントリをすべて削除するための方法です。
- 一時フォルダーを作成し、その中に両方のテキスト ファイルを配置します。
次のコマンドを実行して両方のファイルをマージしますが、2 つのファイルの間に改行を入れます。
/li>
結果の output.txt ファイルには22243490行が含まれ、サイズは 207.5 Mb になります。
ここで、以下に示すように並べ替えコマンドを実行すると、その中に非 ASCII 文字 (おそらくユニコード、ワイド文字) が存在するため、エラーが発生します。
そこで、環境変数LC_ALLを C に設定し、次のようにコマンドを実行します。
また、result.txt には22243488行あり、サイズは 207.5 Mb です。
したがって、result.txt は output.txt と同じです。
さて、output.txt に多くの重複エントリがあることは既にわかっていますが、上記のコマンドで重複エントリを削除できないのはなぜですか?
また、ファイルのサイズが大きいことを考慮して、これが複数のファイルをマージし、並べ替えてから一意にする効率的な方法であるかどうかを知りたいと思いましたか?
shell - uniq -c が \t の代わりにスペースを出力するのはなぜですか?
uniq -c テキストファイルを使用します。その出力は次のようになります。
....
したがって、合計数(上記の123と2など)を抽出する必要がありますが、この行をスペースで分割すると、このようになるため、方法がわかりません['123', 'first', 'word(tab)other', 'things']
。なぜタブで出力しないのか知りたいです。
そして、シェルで合計数を抽出する方法は? (最終的にpython、WTFで抽出します)
更新:申し訳ありませんが、質問を正しく説明していませんでした。合計数を合計したくありませんでした。(スペース) を (タブ) に置き換えたいだけですが、後でデータが必要なため、単語のスペースには影響しません。ちょうどこのような:
arrays - Perl配列をユニークにする
私は現在、バッククォートされたシェルコマンドからの出力をキャプチャすることに関して非常に単純な問題を抱えています。問題はかなり単純なものであるとお詫び申し上げます。
連続した重複要素が含まれていることがわかっているソート済み配列(@valid_runs)があります。この配列をuniqにエコーするためにバッククォートを使用したいと思います。STDOUTを配列でキャプチャしたい。私はこのようにそうしようとします。
このprintステートメントは何も生成しません。そのことについては、これもしません。
uniqとechoの使い方を知っています。これは私にはかなり奇妙に思えます。これは、これらのコマンドを適切に使用することよりも、perl配列に関係していると思います。私は他の場所を少し検索したので、解決策が些細なことに思えるかもしれないという理由だけで、私に反対票を投じないでください。お時間をいただき、ありがとうございました。
解決策に関する注記:TLPの解決策は、uniq問題を処理する限り最も簡単です。すべての回答がこの問題をシステムコールしないことを示唆していたので、私はかなり柔軟です。Perlのuniq関数がUnixのuniqと同じである場合、配列はソートされたままである必要があります。
ソートされた結果を気にしない場合は、JohnCorbettのソリューションが適切に機能します。
ruby-on-rails - uniq.pluck(:column_name) を試行すると、RoR ActiveRecord::Base uniq が未定義になる
私は映画と呼ばれる非常に単純なモデルを持っています。データベース内の映画に割り当てられた評価のきちんとしたリストを返すクラス メソッドを追加しようとしています。電話したいらしいMovie.uniq.pluck(:rating)
だから私は次のようにメソッドを追加しました:
しかし、それはうまくいきません。実行すると、次のようになります: undefined method
uniq' for #`... ActiveRecord::Calculations を含めようとしましたが、どちらも役に立たないようです。また、「def ...」の後にブレークポイントを配置して、自分自身が持っているメソッドを調べましたが、確かに、それらの中に uniq はありませんでした...
私は明らかに何か間違ったことをしていますが、それが何であるかはよくわかりません。
誰にもアイデアはありますか?