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

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


2
コマンドの出力をシェル変数に割り当てるにはどうすればよいですか?
式の結果を変数に割り当て、それを文字列と連結してからエコーします。ここに私が持っているものがあります: #!/bin/bash cd ~/Desktop; thefile= ls -t -U | grep -m 1 "Screen Shot"; echo "Most recent screenshot is: "$thefile; しかし、その出力: Screen Shot 2011-07-03 at 1.55.43 PM.png Most recent screenshot is: したがって、それはに割り当てられておらず$thefile、実行時に印刷されているように見えます。

10
標準エラーストリーム(stderr)をgrepする方法は?
ffmpegを使用して、オーディオクリップのメタ情報を取得しています。しかし、私はそれを理解することができません。 $ ffmpeg -i 01-Daemon.mp3 |grep -i Duration FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 ... 私がチェックしたところ、このffmpegの出力はstderrに向けられています。 $ ffmpeg -i 01-Daemon.mp3 2> /dev/null したがって、grepは一致する行をキャッチするためにエラーストリームを読み取ることができないと思います。grepでエラーストリームを読み取ることができるようにするにはどうすればよいですか? nixCraftリンクを使用して、標準エラーストリームを標準出力ストリームにリダイレクトすると、grepが機能しました。 $ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration Duration: 01:15:12.33, start: 0.000000, …

7
一致するまですべてのファイルを表示する
grep --before-context 5 一致する前に5行を表示します。 試合前にすべてを見せたいです。 行うことgrep --before-context 99999999は機能しますが、それはそれほどプロフェッショナルではありません... 一致するまですべてのファイルを表示する方法は?


4
再帰grep vs find / -type f -exec grep {} \; どちらがより効率的/高速ですか?
ファイルシステム全体のどのファイルに文字列が含まれているかを見つけるには、どちらがより効率的ですか:再帰grepまたはexecステートメントでgrepで検索しますか?ファイル拡張子またはファイル名に一致する正規表現を知っている場合、少なくともフィルタリングを行うことができますが、-type fどちらが優れているかを知っている場合、findがより効率的だと思います。GNU grep 2.6.3; find(GNU findutils)4.4.2 例: grep -r -i 'the brown dog' / find / -type f -exec grep -i 'the brown dog' {} \;
70 grep  find 

2
Grep「OR」正規表現の問題
正規表現でgrepを使用して、2つの文字列のうち1つに一致するファイル内の行を見つけようとしています。ここに私のgrepがあります: $ grep "^ID.*(ETS|FBS)" my_file.txt 上記のgrepは結果を返しません。ただし、次のいずれかを実行した場合: $ grep "^ID.*ETS" my_file.txt または $ grep "^ID.*FBS" my_file.txt 特定の行に一致します。OR正規表現が一致しないのはなぜですか?助けてくれてありがとう!

6
grepを使用して行末のパターンを検出する
私が行った場合: $ ls -R .: 4Shared/ Cloud/ ./4Shared: UFAIZLV2R7.part3.rar ./Cloud: UFAIZLV2R7.part2.rar.part UFAIZLV2R7.part1.rar.part UFAIZLV2R7.part4.rar.part .rarファイルのみをリストしたい場合にgrepを使用すると、.rar.partファイルも表示されますが、これは私の望みではありません。 私はこのスレッドでfindまたはls **/*.rarを使用してこれを解決していますが、うまく動作しますが、を介してそれを行うことができるかどうかを知りたいgrepです。 私は試しました(について考えてEOL): ls -R | grep ".rar\n" 結果なし。行の終わりに グレーピングが見つかったかどうかを発見することに問題があると思いますが、わかりません。 ここで助けてください?
65 grep 

7
cat出力から最初と最後の行を読み取る方法は?
テキストファイルがあります。タスク-後のファイルから最初と最後の行を取得する $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 cat出力なしでこれが必要です(1と5のみ)。 ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 たぶんawkともっと短い解決策が存在する...
64 bash  shell  sed  awk  grep 

4
grepを使用して完全に一致する文字列
テキストファイルがあります。 deiauk 1611516 afsdf 765 minkra 18415151 asdsf 4152 linkra sfsfdsfs sdfss 4555 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 deiauk 1611516 afsdf ddfgfgd luktol1 4545 4 9 luktol 1 そして、私は正確に一致したいdeiauk。私がこれを行うとき: grep "deiauk" file.txt 私はこの結果を得ます: deiauk 1611516 afsdf 765 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 しかし、私はこれだけが必要です: deiauk …
64 grep 

6
grep検索の結果を新しいviファイルにパイプする方法
私はgrep -e Peugeot -e PeuGeot carlist.txtcarlist.txtを検索していくつかのアイテムを引き出すgrep -e Peugeot -e PeuGeot carlist.txt | viために使用していますが、それが私のためにそれをパイプするだろうと推測しましたが、これは私が得るものです: Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting... Vim: preserving files... Vim: Finished.
63 grep  vi 

1
GNU grepの-Xオプションの実際の目的は何ですか?また、なぜ文書化されていないのですか?
この質問を読んで、GNUにgrepは-X議論を期待するオプションがあることを発見しました。奇妙なことに、マニュアルページにも情報ページにも記載されていません。 ソースコードを見ると、--help出力の真ん中にそのコメントがあります: /* -X is deliberately undocumented. */ さらに見ると、と思われる-X matcherオプションは、正規表現のために使用されるエンジンを設定し、matcherあることの1 grep、egrep、fgrep、awk、gawk、posixawk及びperl(バージョン2.25のとおり)。 これらの値のいくつかは(つまり既存のオプションと厳密に同じでありgrep -G、grep -E、grep -Fおよびgrep -P)。一方、3つのawkバリアントには対応するオプションがありません。 特にawk正規表現エンジンの1つで、誰かがこのオプションの実際の目的を知っていますか?意図的に文書化されていない理由を誰かに教えてもらえますか?
58 grep  options 

3
内側のgrepが少ない?
現在、多くのなじみのないログを調べていくつかの問題を探しています。最初に確認するファイルはEvents.logで、少なくとも3つのページにless、同じイベントが異なる時間に表示されているように見えます。これはかなり害のないイベントです。このイベントを除外したいのですが、現在は終了lessして次のようなことをします grep -v "event text" Events.log | less これにより、他にも多くの一般的で興味のないイベントが発生するので、これも除外します。私ができる方法があるgrep -v INSIDEのはless?やるよりも egrep -v "event text|something else|the other thing|foo|bar" Events.log | less あらゆる種類のログファイルを見るときに便利な機能lessであると思います。ツールでない場合、私が求める品質の別の機能はありますか?less組み込みのだけのスタイルビューアーgrep。
58 bash  grep  logs  less 

2
変数のgrep
変数があるとしましょう line="This is where we select from a table." 今、私は何回選択が文で発生するかをgrepしたい。 grep -ci "select" $line 試しましたが、うまくいきませんでした。私も試しました grep -ci "select" "$line" それでも動作しません。次のエラーが表示されます。 grep: This is where we select from a table.: No such file or directory
58 shell  grep  string 

9
同じ文字列で複数のファイルを同時にgrepする方法は?
確認する必要がある一連のログファイルがあり、同じファイルの特定の文字列を一度に検索したいのですが、これは可能ですか?現在使用しています grep -E 'fatal|error|critical|failure|warning|' /path_to_file これを使用して複数のファイルの文字列を一度に検索するにはどうすればよいですか?これをスクリプト化する必要がある場合、誰かがこれを行う簡単なスクリプトを提供できますか?
57 scripting  grep 

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