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

grepは、もともとUnix用に書かれたコマンドラインのテキスト検索ユーティリティです。正規表現を使用してテキストを照合し、一般にパイプラインのフィルターとして使用されます。このタグは、質問がgrepまたはgrepベースのAPIを使用したプログラミングに関連している場合にのみ使用してください。grepコマンドラインオプション自体の使用またはトラブルシューティングに関する質問はトピックから外れています。

8
Windowsの再帰的なgrepコマンドライン
Windowsで再帰的なgrepを実行する必要があります。Unix/ Linuxでは次のようになります。 grep -i 'string' `find . -print` またはより好ましい方法: find . -print | xargs grep -i 'string' cmd.exeだけで立ち往生しているので、Windowsの組み込みコマンドしかありません。残念ながら、このサーバーにCygwinやUnxUtilsなどのサードパーティツールをインストールできません。PowerShellをインストールできるかどうかさえわかりません。組み込みのcmd.exe(Windows 2003 Server)のみを使用する提案はありますか?


9
grepを使用して、ドットが含まれている文字列を検索する
0.49コマンドを使用して文字列(ドット付き)を検索しようとしています grep -r "0.49" * しかし、何が起こっているのかというと0449、0949などの文字列を含む不要な結果も得られています。Linuxは、ドット(。)を任意の文字と見なしてすべての結果を引き出すLinuxです。でも「0.49」だけの結果を出したい。
193 linux  grep 

3
文字列を含まないGrep正規表現
grepsyslogファイルと照合するための正規表現パターンのリストを渡します。それらは通常、IPアドレスとログエントリに一致します。 grep "1\.2\.3\.4.*Has exploded" syslog.log これ"1\.2\.3\.4.*Has exploded"は、ループで渡した部分のような単なるパターンのリストなので、たとえば "-v"を渡すことはできません。 上記の逆を行おうとすると混乱します。特定のIPアドレスとエラーの行を一致させないので、「!1.2.3.4。*展開されました」は、1.2.3.4以外のsyslog行と一致し、展開されたことを通知します。 。私がしなければならないと一致しないようにIPを含めることができるよう。 StackOverflorで同様の投稿をいくつか見てきましたが、それらは正規表現パターンを使用しているため、で操作できないようですgrep。誰かが実用的な例をgrep教えてくれますか? 更新: これは、次のようなスクリプトで発生しています。 patterns[1]="1\.2\.3\.4.*Has exploded" patterns[2]="5\.6\.7\.8.*Has died" patterns[3]="\!9\.10\.11\.12.*Has exploded" for i in {1..3} do grep "${patterns[$i]}" logfile.log done
181 regex  grep 


9
よりエレガントな「ps aux | grep -v grep」
プロセスのリストをチェックして、私にとって興味深いプロセスを「grep」すると、grepそれ自体も結果に含まれます。たとえば、端末を一覧表示するには: $ ps aux | grep terminal user 2064 0.0 0.6 181452 26460 ? Sl Feb13 5:41 gnome-terminal --working-directory=.. user 2979 0.0 0.0 4192 796 pts/3 S+ 11:07 0:00 grep --color=auto terminal 通常、私ps aux | grep something | grep -v grepは最後のエントリを取り除くために使用しますが、エレガントではありません:) この問題を解決するためのよりエレガントなハックはありますか(すべてのコマンドを別のスクリプトにラップすることの一部であり、これも悪くないことです)
177 linux  grep 


12
正規表現に一致する最初の行の後のファイルの部分を取得するにはどうすればよいですか?
約1000行のファイルがあります。私のgrepステートメントに一致する行の後のファイルの部分が必要です。 あれは: $ cat file | grep 'TERMINATE' # It is found on line 534 したがって、535行目から1000行目までのファイルをさらに処理する必要があります。 どうやってやるの?
169 bash  shell  scripting  grep 

9
(grep)非ASCII文字に一致する正規表現?
Linuxでは、多くのファイルを含むディレクトリがあります。一部には非ASCII文字がありますが、すべて有効なUTF-8です。1つのプログラムにバグがあり、ASCII以外のファイル名で機能しないため、影響を受けるファイルの数を調べる必要があります。私はこれを使ってこれを行いfind、次にgrepを実行して非ASCII文字を出力し、次にa wc -lを実行して数字を見つけていました。grepである必要はありません。私は、任意の標準的なUnix使用できる正規表現のように、Perlの、sedは、AWKなどを、 しかし、「ASCII文字以外の文字」の正規表現はありますか?
169 regex  unicode  grep  ascii 


9
ファイルBに表示される行を別のファイルAから削除するにはどうすればよいですか?
メールごとに1行の大きなファイルA(メールで構成)があります。また、別のメールセットを含む別のファイルBがあります。 ファイルAからファイルBに表示されるすべてのアドレスを削除するには、どのコマンドを使用しますか。 したがって、ファイルAに以下が含まれている場合: A B C およびファイルBに含まれるもの: B D E 次に、ファイルAは次のように残します。 A C これがより頻繁に尋ねられる可能性のある質問であることがわかりましたが、区切り文字が正しくないエラーが発生するコマンドをオンラインで1つだけ見つけました。 どんな助けでも大歓迎です!誰かがきっと賢いワンライナーを思いつくでしょうが、私はシェルの専門家ではありません。
160 linux  shell  sed  diff  grep 

10
複数行の出力を1行に連結する方法は?
コマンドを実行すると、cat file | grep pattern何行もの出力が得られます。すべての行を1行に連結して、各行"\n"を"\" "(末尾に"スペースが続く)で効果的に置き換えるにはどうすればよいですか? cat file | grep pattern | xargs sed s/\n/ /g 私のために働いていません。
158 linux  bash  unix  grep  tr 

8
grep -fと同等のPowerShell
に相当するPowerShellを探していgrep --file=filenameます。わからない場合grep、filenameはテキストファイルで、各行には一致させたい正規表現パターンがあります。 多分私は明白な何かを見逃しているかもしれSelect-Stringませんが、このオプションがないようです。
157 powershell  grep 

7
grepコマンドの結果として受け取った各行を処理する方法
次のようにgrepコマンドを実行した後、ファイルからいくつかの行を取得しました。 var=`grep xyz abc.txt` 結果として、xyzで構成される10行を得たとしましょう。 次に、grepコマンドの結果として取得した各行を処理する必要があります。これをどのように進めますか?
152 bash  shell  grep 

11
lsとgrepを使用して特定の拡張子を持つファイルを一覧表示する
現在のディレクトリからファイルを取得し、.mp4 .mp3 .exeファイルのみを出力したいだけです。だから私はこれを行うことができると思った: ls | grep \.mp4$ | grep \.mp3$ | grep \.exe$ しかし、いいえ、最初のgrepはmp4を出力するだけなので、他の2つのgrepは使用されません。 何か案は?PS、Slow Leopardでこのスクリプトを実行しています。
152 bash  shell  macos  grep 

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