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

ファイル内のテキストパターンを検索するコマンドラインツールであるgrepに関する質問。このタグは、grep自体に関する質問、またはgrepコマンドラインツールの使用から生じる問題に関する質問に使用します。

1
grep、less、awk、sedを使用する場合[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた3年前。 私はLinuxの世界に入りつつあり、職場ではgrepますます使用しています。そうすることで、私が望むものに十分でない場合があることを理解しています。 私はgrep数日前に苦労していましたが、Linuxの上級管理者である私の同僚がを使用するように言われましたawk。どれだけ早く結果を得たかに驚いた。 だから私の質問は、いつあなたが一方を他方の上に使うことを選ぶのですか?一緒に仕事をしgrepたり時間awkを節約したり、時間を節約したりする前に、どんな質問を自問することができますか?
17 awk  sed  grep  less 


1
「grep」の反対は何ですか?
私はと、文字列の長いシリーズをプリントアウトの代わりにのみ(1つの用途行うには、「グレップ」)は、どのように私は特定のパターンを含む行を示すだと言う除外する特定のパターンを?
17 grep 

1
フィールドの値が3以下の行を削除します-sedまたはawk?
8番目のフィールド(列)の値が2以下のすべての行を削除する必要があります。 私のデータは次のようになります。 12-31 Airport 189 379 41 49.70946503 -124.91377258 2 2880 30.8 01-01 AlberniElementary 165 331 16 49.26100922 -124.80662537 4 5760 26.1 01-09 BamfieldMarine 161 323 23 48.83490372 -125.13572693 2 2875 27.4 01-10 BamfieldMarine 161 323 23 48.83490372 -125.13572693 3 3068 38.6 awkを使用すると、必要な値を取り除いて別のファイルに出力できること、そしてsedが現在のファイルを編集することを理解しています。どちらの場合でも、元のファイルを保持する必要があります。 注:ソリューションについて詳細な説明を提供してください。コマンドを記述するだけでは不十分です。提案に注釈を付けてください。 さらに注意:データにはヘッダー行があるため、ほとんどの場合、ソリューションには次のことが必要です。 awk 'FNR> 1' 私は考えます?
17 shell  shell-script  sed  awk  grep 

4
先頭の空白なしでgrepを実行するにはどうすればよいですか?
私は大規模なコードベースを熟読していますが、主要な空白と集計は非常に迷惑なようです。それを取り除く方法はありますか? grep -R "something" ./ たとえば、次の代わりに: foo/bar.cpp: qwertyuiosomethingoi foo/bar/baz.h: 43rfsgsomethingdrfg bar/bar.cpp: 1234edwssomethingczd 私は次のようなものを得たいです: foo/bar.cpp: qwertyuiosomethingoi foo/bar/baz.h: 43rfsgdsomethingrfg bar/bar.cpp: 1234edwssomethingczd またはそれ以上: foo/bar.cpp: qwertyuisomethingooi foo/bar/baz.h: 43rfsgdrsomethingfg bar/bar.cpp: 1234edwssomethingczd

7
grepの結果のファイルを開くにはどうすればよいですか?
多くのファイルをgrepして行を見つけると、grepは1つの結果を返します。ファイル名をコピーして新しいコマンドに貼り付けるのではなく、エディターでその1つの結果を開くことができるようにします。次のようなものですgrep foo | vim。BASHでそれを行う方法はありますか?
17 bash  grep 

5
grepとawkの使用
特定のパターンをキャプチャするには、awkおよびgrep使用することができます。なぜ私たちは一方をもう一方の上に使うべきですか?どちらが速いですか、そしてなぜですか? ログファイルがあり、特定のパターンを取得したい場合、次のいずれかを実行できます。 awk '/pattern/' /var/log/messages または grep 'pattern' /var/log/messages ベンチマークを行っていないので、知りません。誰かがこれを詳しく説明できますか?これら2つのツールの内部動作を知ることは素晴らしいことです。
17 linux  awk  grep  performance 

1
grep検索+次の行
ではgrep、次のようにコマンドを、私は私が必要とするテキストが見つかりました: grep 'C02' ~/temp/log.txt 目的の文字列が見つかった場合は、見つかった文字列に続く行を印刷したいと考えています。 たとえば、目的のテキストが「abc」であり、abcが12行目で見つかった場合、13行目も印刷したいとします。
17 grep 

8
ファイル内でバイトシーケンスが発生する回数をカウントするにはどうすればよいですか?
私が持っているファイル内で特定のバイトシーケンスが何回発生するかをカウントします。たとえば\0xdeadbeef、実行可能ファイル内でその数が何回発生するかを知りたいです。今、私はgrepを使用してそれをやっています: #/usr/bin/fish grep -c \Xef\Xbe\Xad\Xde my_executable_file (私のCPUはリトルエンディアンであるため、バイトは逆の順序で書き込まれます) ただし、アプローチには2つの問題があります。 これらの\Xnnエスケープシーケンスは、魚の殻でのみ機能します。 grepは実際に、マジックナンバーを含む行の数をカウントしています。パターンが同じ行で2回発生する場合、1回だけカウントされます。 これらの問題を修正する方法はありますか?この1つのライナーをBashシェルで実行し、ファイル内でパターンが発生する回数を正確にカウントするにはどうすればよいですか?

1
方向に偏ったペナルティを持つアグレプ
私は使用していますtre-agrep (マンページ)の実装agrep (マンページ)を近似パターンマッチングを実行します。このユーティリティは、レーベンシュタイン距離に基づいて一致を検索し、ユーザーは置換、挿入、または削除の編集に適用されるペナルティを構成できます。 ただし、クエリの長​​さ全体に差をつけて重みを適用します。つまり、クエリの先頭(左端)での削除の重みを右側よりも低くします。manこのユーティリティのページには、そのようなレベルの制御が可能であることが示されていません。 ミスマッチペナルティをより細かく制御して近似一致が可能な他のコマンドラインツールはありますか?
16 grep  agrep 

2
2つのパターン間(および含む)の行を印刷します
行CKの末尾にある行からgrepを開始し、行の末尾にあるときにgrepを停止しDます。試しましたgrep "$CK" "$D" file..txtが、うまくいきませんでした。 入力: kkkkkkkkkkk jjjjjjjjjjjjjjjjjj gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D GGGGGGGGGGGGGG GGGGGGGGGGGGGG 目的の出力: gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D

2
grep:ファイル名を一度表示してから、行番号付きのコンテキストを表示します
ソースコードにはエラーコードが散在しています。grepを使用すると簡単に見つけることができますが、次の行に沿って出力を提供find_codeする(たとえばfind_code ####)実行できるbash関数が必要です。 /home/user/path/to/source.c 85 imagine this is code 86 this is more code 87 { 88 nicely indented 89 errorCode = 1111 90 that's the line that matched! 91 ok this block is ending 92 } 93 } 現在私が持っているものは次のとおりです。 find_code() { # "= " included to avoid matching unrelated number …

2
grep -rはデフォルトでどこを検索しますか?
パスを指定せずにgrepを使用して検索すると、grep -r 'mytext'無限に時間がかかるようになりました。一方、指定したパスで検索するとgrep -r 'mytext' .、すぐに必要なものが見つかります。だから、私は最初の形で、どのディレクトリでgrep検索をするのですか? UDATE:grepバージョン:grep(GNU grep)2.10
16 grep  recursive 

4
プロセスのIDを見つけて強制終了する
バックグラウンドプロセスを終了する必要があるときはいつでも ps -e | grep <process_name> それはこのような何かを印刷し1766 ? 00:00:13 conkyにそれから私は、プロセスIDを使用して、killそれがとても好きですkill 1766。 これを簡単にする方法はありますか?早くする?入力の量を減らしますか?
16 process  grep  kill  ps 

6
圧縮されたアーカイブを再帰的にgrepするにはどうすればよいですか?
私はuse Test::Versioncpanのどのモジュールを見つけようとしています。だから私はminicpanそれをミラーリングするために使用しました。私の問題は、ダウンロードされたアーカイブを反復処理し、アーカイブ内のファイルをgrepする必要があることです。誰も私にこれをどうやってやるか教えてもらえますか?できれば、アーカイブ内のファイルとその行を教えてくれる方法で。 (注:それらはすべてtarballであるわけではなく、一部はzipファイルです)
16 grep  find  zip  recursive  archive 

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