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

grepは、正規表現に一致する(または一致しない)行の入力を検索し、その結果を出力するUnixコマンドラインユーティリティです。このタグは、grep機能の使用方法、grepで機能する正規表現の作成方法、および一般的な使用法についての質問に使用します。Unixライクな環境(Windows上のCygwinなど)でgrepが利用できるようになったため、互換性に関する質問やバージョンとソフトウェア環境の違いについてもこのタグを使用できます。

3
バイナリファイルの文字列の16進値をgrepするにはどうすればよいですか?
次のようなバイナリファイルがあります(Emacsの 16進モードで開く):16進値 '22081b00081f091d2733170d123f3114'がファイルに存在する場合、どのようにgrepできますか? 00000000: 2b08 1b00 1418 0825 0407 3830 271d 170d +......%..80'... 00000010: 2208 1b00 081f 091d 2733 170d 123f 3114 ".......'3...?1. 00000020: 1909 1b00 0934 1f10 2503 3803 111c 3821 .....4..%.8...8! 私の例では、探している16進値はアドレス0x10にあるため、ヒットを返すはずです。
7 grep 

5
Linuxでアクセス許可を持つファイルの完全な絶対パスを再帰的に一覧表示する
私は少しオンラインで検索しましたが、すべてのファイルを絶対パスと許可で再帰的にリストする方法を見つけようとしています。私は私ができるように、これをやりたいgrepように、私が欲しいものを私は、コマンドを実行したとき、私はちょうど一致するファイル、そのアクセス権、およびそれらの完全なパスを得ることができるように、: <search command> | grep file.name 出力: /home/current/Desktop/file.name /etc/program/src/file.name 私はlsそれが最も速いので使用したいと思います、そして私は入力します: ls -alR $PWD/ しかし、これはファイルのパスを表示しないためgrep、出力を行った場合、ファイルのアクセス許可は表示されますが、元のディレクトリは表示されません。 とls統合して使用しfind、grep希望する形式で出力を取得できます。次のようなものを使用できます。 ls -ault `find $PWD/ -type f` | grep file.name しかし、これは非常に遅いです。2つのコマンドが実際に実行されているためだと思います。 またはなしで使用findするlsとgrep、高速になりますが、次のように入力する必要があります。 find $PWD/ -type f -name file.name -printf '%M %u %g %s\t%a\t%p\r\n' これにより、すてきなフォーマットが得られます(ユーザー、グループ、サイズ、およびアクセスの最終日も含まれます。これらは役立ちます)。しかし、トンと入力すると、それは確かに使用するのと同じ速さではないlsとgrep。 私がやろうとしていることを使うよりも速くする方法はありますfindか?
7 linux  grep  ls 

4
一部の文字列を含むが別の文字列を含まないファイルを検索するLinuxコマンドとは何ですか?
私は特定の文字列ではなく、他の文字列ではなく多くのXMLファイルを検索しようとしていますが、それを行うためのコマンドをまとめるのに問題があります。包含/除外基準に一致するファイル名のみをリストするようにします。私が試してきました: find . -name *.xml -exec grep -li "string1\|string2" {} \; | xargs grep -Li "string3\|string4" しかし、findから返されるファイル名には名前にスペースが含まれており、2番目のgrepがそれらをすべて小さなチャンクに分割し、もちろんそのようなファイルを見つけられないため、問題があります。xargsに追加しようとし-0ましたが、エラーは削除されましたが、「ファイル名が長すぎます」と表示され、最初のgrepのみが実行されます。 名前にスペースが含まれるファイルで適切に動作するようにこのコマンドを調整するにはどうすればよいですか?
4 string  grep  xargs 

2
grepでファイルを並べ替える
数百の出力ファイルがあり、そのうちのいくつかにはエラーメッセージが含まれています。文字列「ERROR_1」を含むすべてのファイルを「subfolder_1」に、残りを2番目の「subfolder_2」に自動的に配置するとします。これは、どういうわけかgrepをパイピングすることで可能になるはずです。便利な構文は何でしょうか?
4 bash  grep  sorting  pipe 

2
単純な(?)Unix Grepコマンド
ある文字列を持ち、具体的には別の文字列を持たないファイルのリストを再帰的に表示する方法を教えてください。また、ファイル名ではなくファイルの内側を見るという意味です。

1
なぜsedはエコーからの直接出力でのみ動作するのですか
AndroidアプリのUI描画時間を取得するためのシェルコマンドがあります(この質問には実際には関係ありません)。とにかく、出力は次のようになります I/ActivityManager( 1843): Fully drawn com.amazon.android.calypso/com.amazon.android.tv.tenfoot.ui.activities.ContentBrowseActivity: [time] ここで、[時間]の形式である+###msか、+#s###ms(ここでも、関係がありません)。 コマンドは次のとおりです。 adb logcat -d | grep 'Fully drawn' | sed -e 's/^.*: +\(.*\)ms$/\1/' -e 's/s//' echo出力を直接表示するために使用すると、期待どおりに機能します: $ echo 'I/ActivityManager( 1843): Fully drawn com.amazon.android.calypso/com.amazon.android.tv.tenfoot.ui.activities.ContentBrowseActivity: +233ms' | sed -e 's/^.*: +\(.*\)ms$/\1/' -e 's/s//' > 233 $ echo 'I/ActivityManager( 1843): Fully drawn com.amazon.android.calypso/com.amazon.android.tv.tenfoot.ui.activities.ContentBrowseActivity: +1s233ms' | …
3 bash  regex  grep  sed 

2
コマンドライン経由で「nvidia-settings」のコマンド出力を取得する方法は?
手元のケース: nvidia-settings -q all | grep 'Attribute。* GPUCoreTemp' 与える: Attribute 'GPUCoreTemp' (system5:0.0) 58. Attribute 'GPUCoreTemp' (system5:0[gpu:0]): 58. それから私はそれを作ります: nvidia-settings -q all | grep 'Attribute.*GPUCoreTemp' | sed -e 's/.* //' 私に与えます: 58. 58. しかし、私は最初のものだけが欲しい...これを達成する方法?




2
最新ファイルのGrep
サブフォルダーにある最新のファイルから特定の行を見つけようとしています。ファイルには同じ名前が付いています。したがって、構造は次のようになります。 フォルダ サブフォルダー1 filename.xml SubFolder2 filename.xml 私はgrepを使用して行を持っています grep -r "mySubString" folder/ ここで提案されているように、ファイルをソートするためにfindを使用してみました。しかし、私は両方を組み合わせて最新のファイルから行を取得する方法を知りません。 ご協力いただきありがとうございます。

2
*なぜ* find / grepで/ dev / nullを使用するとファイル名が表示されるのですか?
find . -name "*.java" -exec grep "foo" {} \; これは、ファイル名ではなく、一致するものだけを出力します。 find . -name "*.java" -exec grep "foo" /dev/null {} \; しかし、これはファイル名も出力します。 どうして?/ dev / nullがミックスに挿入されたときにファイル名が印刷されるfind / grepの仕組みは何ですか? PS-はい、「grep -H」を実行できることを知っています
2 unix  find  grep 

2
pgrepはプロセスを開始するよりも速く、スリープを使用しますか?
CSHスクリプトとコマンドにいくつか問題があります。 set XVFBCHK2 = `pgre -f 'Xvfb' | wc -l` 一貫性のない値を返すようです。1を返す必要がある場合は0を返します。grep関数が速すぎるため、コマンドラインに続くXvfbの新しいインスタンスをキャッチしません。 Xvfb :1 -screen 0 1600x1200x16 >& /dev/null & たとえば、この一連のCSHスクリプトでは: if ( $XVFBCHK == 0 && $FIJICHK == 0 ) then set DISP=0 set SCREEN=0 Xvfb :1 -screen 0 1600x1200x16 >& /dev/null & set XVFBCHK2 = `pgrep -f 'Xvfb' | …
2 sleep  grep 

3
変数または文字列でgrepを使用する方法は?
私はbashスクリプトを書いており、ファイル名の末尾にピリオドが付いているかどうかを確認する必要があります(もしそうならそれを取得しますが、変数または文字列で正規表現を使用する方法を理解することはできません)。 次のようにecho、文字列をgrepにパイプするために端末で使用できました。 echo "filename.txt.123" | egrep -o "\.[0-9]+$" | egrep -o "[0-9]+" しかし、この出力を変数に割り当てる必要があります。私はこれを試しました: revNumber= echo "filename.txt.123" | egrep -o "\.[0-9]+$" | egrep -o "[0-9]+" しかし、それは機能しません。他にもたくさん試しましたが、有効なものはありませんでした。 私のbashスクリプトでは、文字列ではなく変数でgrepを使用しますが、ここでの概念は同じです。 文字列または変数にgrepを使用して、結果を別の変数に保存するにはどうすればよいですか?
2 linux  bash  grep 

2
"out"マッチングとそれに続くn行をgrepする
このようなログファイルを考えます。 action A detail 1 detail 2 detail 3 action X detail 1 detail 2 action B detail 1 action X detail 1 detail 2 action C "action [ABC]"のある行には、さまざまな数の "detail"行があるかもしれません。 「アクションX」の行 常に 持ってる 2 "詳細"行に従ってください。 イベントXには興味がないので、 "action X"とそれに続く2行ですべての行を除外したいと思います。 私は知っています -v 「そして次の2行」の部分の表現方法ではありません
1 grep 

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