[解決済み] grepの出力に含まれる重複を削除する
2022-02-18 22:09:44
質問
次のようなパターンの結果ファイルを入手したケースがあります。
path:pattern found
例えば
./user/home/file1:this is a game
つまり、ある文字列を検索したときに、それを見つけたファイルと行を取得しました。
問題は、同じファイルに複数のケースがあることがあるので、重複するファイルを削除したいのです(ケースは異なるので不可能です)。
何かお手伝いやアイデアがありましたら、ぜひお聞かせください :)
最終的にはこれを回すことになります。
/user/home/desktop/file1:this is a game
/user/home/desktop/file1:what kind of game
/user/home/desktop/file1:fast action game
を、ファイル内の残りのすべてのデータを失うことなく、最初に見つかった結果だけにすることができます。
Update1です。
というわけで、実際のファイルはこんな感じです。
/user/home/desktop/file1:this is a game
/user/home/desktop/file1:what kind of game
/user/home/desktop/file1:fast action game
/user/home/desktop/file2:a game
/user/home/desktop/file3:of game
/user/home/desktop/file4:fast game
同じファイルに何度も出てくるのを解消したいので、以下のようになります。
/user/home/desktop/file1:this is a game
/user/home/desktop/file2:a game
/user/home/desktop/file3:of game
/user/home/desktop/file4:fast game
解決方法は?
を使用することができます。
sort -u
:
grep pattern files | sort -t: -u -k1,1
-
-t:
- デリミターとして : を使用 -
-k1,1
- 最初のフィールドのみに基づいてソートする -
-u
- 重複を削除(最初のフィールドに基づく)
これは、重複を排除して、1つの出現ファイルだけを保持します。
この例では、次のような出力が得られます。
/user/home/desktop/file1:this is a game
万が一、1つのファイルで複数の異なるマッチングを探している場合。
grep pattern files | sort -u
関連
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Gitの履歴からコミットしたコードをgrep(検索)する方法
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] 連続したストリームを「grep」する方法とは?
-
[解決済み】特定の拡張子を持つファイルのみを再帰的にgrepするにはどうすればよいですか?
-
[解決済み] [Solved] あるファイルにある行を別のファイルにない行を見つける速い方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bashでjsonファイルを解析するために、jqの出力にあるダブルクオートを削除する方法は?
-
[解決済み] テスト
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] Bashで文字列から改行を削除する方法
-
[解決済み] eval "$(docker-machine env default) "とする。
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] bashで::演算子は何をするのですか?
-
[解決済み] 絶対パスと論理パスの違い
-
[解決済み] Bash - "fi ;;" の使い方は?
-
[解決済み] MINGW64 "make build" エラー。"bash: make: コマンドが見つかりません"