ベストアンサー grepで検索行以外の行を抽出する方法 2007/06/27 10:58 grepをかけると検索文字列を含む行を抽出しますが 検索文字列を含む行とその前後の行も出力したりできるのでしょうか? よろしくお願いします。 みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー knaka ベストアンサー率100% (1/1) 2007/06/27 13:51 回答No.3 これはどうでしょう http://hide.maruo.co.jp/lib/macro/grep118.html http://hide.maruo.co.jp/lib/macro/zengo320.html 参考URL: http://hide.maruo.co.jp/lib/macro/zengo320.html 質問者 お礼 2007/06/27 15:14 ありがとうございました。マクロを使用して前後行の出力が できるようになりました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) knaka ベストアンサー率100% (1/1) 2007/06/27 11:24 回答No.2 こちらのサイトが参考になると思います。 参考URL: http://www.atmarkit.co.jp/flinux/rensai/linuxtips/137greplineplus.html 質問者 補足 2007/06/27 11:58 ありがとうございます。 実は秀丸のgrepを使おうとしているのですが 「-A」などのオプションは使えないのでしょうか? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 Ceren ベストアンサー率49% (90/183) 2007/06/27 11:10 回答No.1 GNUのgrepであれば、-Aで一致後、-Bで一致前、-Cで一致前後の出力行数を指定することができます。 質問者 補足 2007/06/27 11:37 ありがとうございます。 実は秀丸のgrepを使おうとしているのですが 「-A」などのオプションは使えないのでしょうか? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発その他(プログラミング・開発) 関連するQ&A grepで検索文字列が完全一致した行だけ取り出す方法 grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか? 通常は grep hoge hoge.txt と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。 例えばhoge.txtの中に cc ghoge kkl hogem jjll hoge という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。 何かよい方法があれば教えてください grepで全角文字の行を抽出 grepの検索でテキスト内のひとつでも全角文字がある行を 抽出したいと思ってます。1つの方法は見つかったのですが、 時たまバグがあるそうですので、 他の方法を探そうと思ってます。 わかっている方法は、以下のとおりです。 > grep -n '.*[^ -~。-゜].*' test_data.txt よろしくお願いします。 grepでの抽出について solarisでgrepを使ってログの抽出を行っているのですが、 123のある行を抽出したいとき、grep 123 ファイル名とすると 1234のある行も一緒に抽出されると思います。 これを123のみ抽出させる方法を教えてください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム grepの使い方 "A.lst"と"B.lst"の2つのファイルがあります。 ともにディレクトリ階層の一覧が記述されています。 2つのファイルを比較して、A.lstのディレクトリ階層の文字列を 含む行を、B.lstから抽出して、リダイレクトで出力するには、 どういうコマンド操作になるのでしょうか。 特定の文字列ならば単純に、cat B.lst | grep moziretsu > sample.lst でいいわけですが、この文字列がA.lstファイル内に複数行あり、 それを順にgrepするにはどうすればいいのかがわかりません。 シェルもただいま勉強中です。 よろしくご教授願います。 linuxのgrepコマンドに関して linuxのgrepコマンドに関して ファイルの中から、1や2という文字が単独で存在する行を検索したくて grep 1 file名 とするのですが、そうすると11や23など文字が単独ではなく、含まれている行が出力されます。 含まれる、ではなく文字そのものを検索するにはどうしたらよいでしょうか? 秀丸のGREP検索 GREP検索をした時、該当する単語のある行が表示されなくなってしまいました。 viyon.txt(17) suisen.txt(114) のようにファイル名と行番号しか表示されません。 以前は、検索単語と周囲の文字列も表示されてたんですけど・・・・・・ 元に戻せませんか? 検索値から、その行の抽出。 検索値から、その行の抽出。 シート1のデータがあります。 シート2のA1に検索値を置き、“あああ”の行をシート2に抽出。 シート2のA列に任意の番号を振った後、その番号順での表示(ピンク部分)を希望。 自分でいろいろと調べて試行錯誤したのですが、 思うようにいかず、ご質問させていただきます。 ご回答よろしくおねがいします。 LINUXで半角の英数字以外の文字列をgrep検索したい LINUXで半角の英数字以外の文字列をgrep検索したい たとえば a!3" とか 30%(under_s) とか grepでもなんでもよいですが上記のような半角英数字以外の文字列を検索できますでしょうか。 grep -c で、半角英数字以外の文字列があるかどうか確認したいです。 よろしくお願いします。 一般的なエディタで1行目を対象としたGREP 一般的なエディタで1行目の文字列検索(GREP)はできるものでしょうか。 (例) テキストファイルの一番上に 「Option Explicit」という文字があれば、リストを表示する。 #ちなみに私はVIVIを使っています。(素人レベル) grepの方法について 私は現在、500ファイル近いjspファイルもしくはhtmlファイルから hrefのリンクだけを抽出する作業を行っています。 下記コマンドでgrepをかけた場合、 後ろにつながる文字列まで抽出されてしまいます。 grep -i -e "href=" ソースファイルとしては、 <a href="ファイルパス.html" target><img src=""> というように、hrefの後ろにつながって 他のタグが記述されてしまっていますが、 hrefの"ファイルパス.html"のみを抽出したいのです。 どうすればよいでしょうか。 お手数かと思いますが、 宜しくお願いいたします。 検索後、行を抽出するマクロ エクセルのシート1、A列からE列まで1~800のセルにテキストが入力されいます A列を検索(部分一致)し、ヒット(複数)した行をシート2へコピーしていのですが出来ません。 因みに、A列は文字列で「赤エンピツ、黄エンピツ」などでエンピツと検索してら両方抽出したいです。 初心者で何も判らず本等を読んでも訳判りません、どなたか御教授よろしくお願いします。 grepの出力結果の保存 LinuXのgrepコマンドに関する質問です。 既存のファイルからgrepコマンドで特定の文字列が含まれた行だけを抽出し、その行数を数えるという課題です。 行数を数えるのでwcコマンドを使おうと思ったのですが、wcコマンドは「wc (ファイル名)」という使い方をしますよね。 ということは、grepコマンドで抽出した結果をファイルに保存しなくてはならないのですが、やり方がわかりません。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 複数の文字列を含むファイルの検索-linux linuxにおいてファイル内の文字列を検索するのにgrepを用いますが、 複数の文字列を含むファイルを検索するにはどうしたらよいでしょうか。 同じ行ではなく別の行にある場合で、ファイル名を出力したいです。 つまり ~~~~~~~~~ ~~~~~~~~文字列1 ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~文字列2 のような記述のあるファイルを探すにはどうしたらよいでしょうか。 秀丸エディターでのGREP検索で 秀丸でGREP検索をすると、 ファイル名 (行行番号) 単語 という形式で出力されますが、ファイル名 (行行番号) の部分が余分です。もちろん、後で置き換えして削除することはできますが、最初からファイル名 (行行番号) を出力させないようにするにはどうすればいいのでしょうか? grepによる文字列検索のシェル作成の手順 Solaris9のOSにて、以下の仕様のシェルを作成したいと思っています。 特定のディレクトリ配下にある全てのファイル内で特定の文字列「abc」のある行を抽出し、ファイル化したい。 (検索対象が1ファイルであれば、grep -n abc test.txtでよいですが、ファイル名がたくさんある場合のシェルの作り方がわかりません。) また、どのファイルから検索したのかがわかるように抽出した行の前にファイル名をつけられると大変助かります。 例) ---test1.txtから検索--- 8:XXXXabcXXXX 11:XXXXabcXXX ---test2.txtから検索--- 10:XXXXXXXXabcXX お手数ですが、宜しくお願いします。 find,grepの使い方 こんにちは SYSTEM V系のUNIXで 複数ファイルからaaaという文字列を含むファイルを 抽出し、さらにその中からbbbという文字列を含む ファイルを抽出するにはどうすればいいでしょうか? find,grep等を使えばできそうな気がするのですが 具体的にどう書けばいいか分かりません。 お分かりになる方、ご回答お願い致します。 改行を含んだgrep お世話になっております。質問です。 エディタでサクラを使っています。 改行を含んだgrepはできますか? また、以下のやりかたを見ていただいて、良いやり方がありましたらご教示下さい。 ABCを含んだ行を対象に、;(行の終わり)までを抽出したいのです。 現在以下のような条件でgrepしていますが、ABCを含む行全てが抽出されません。 ABC.*(\r\n)*.*; また、以下のようにgrepすると、ABCを含む行全てがgrepされますが、対象ファイル内で改行されていた場合、;まで抽出されず、改行場所までしか抽出されません。 ABC; 詳しい方、宜しくお願い致します。 perlを使用しての特定行抽出について 何万行も書いてあるテキストファイルがあります。抽出したい文字列の一覧がテキストファイルにまとめられています(文字列は約1000個)。抽出したい文字列は一行にひとつづつ書かれています。何万行も書いてあるテキストファイルから抽出したい文字列と二つ合致したらその行を抽出したいです。ここで、注意していただきたいのが、抽出したい文字列一覧から二つの文字列にヒットした行を抽出したいです。宜しくお願い致します。 何万行も書いてあるテキストファイル aaaaa abc edi bb aert kkkkkkkkkk lllllll ddddd aaaaa anhi kkk ・・・・・・・・ ・・・・・・・・ 抽出したい文字列一覧のテキストファイル aaaaa bbbbb ddddd iiiiiiiii eeeee ・・・・・ ・・・・・ grep.exe と同じ機能をWindows上で実現する方法はありますか?(フリーソフト?) 私は、かつて、まだ Windows3.1 さえもこの世に普及してない時代に、DOSコマンドの“grep.exe”コマンドを頻繁に使用していました。 例えば grep AAA BBB > CCC (AAA と BBB の、どっちがファイル名でどっちが文字列かは忘れました) という感じで、テキストファイル中で、特定の文字列が含まれている行を「行単位」で抽出して、そうして抽出した行の全てをまとめて他のファイル(CCC)に出力する、といった具合です。 その後10年以上、そのコマンドを使っていないのですが、このたび久しぶりに、その機能を使う必要が生じました。 現在でも、おそらくDOSコマンドプロンプトから手入力で実行できるのでしょうが、出来れば、一般の Windows 用ソフトと同様に、ウィンドウ表示でマウスクリックを使いながら“grep.exe”のようなことが出来れば、と思います。 というわけで、 “grep.exe”コマンドと同等か同等以上のことができる方法、若しくはソフトがありましたら、教えてくださいませ! なお、ソフトの場合は、フリーソフトで、かつ、出来るだけ軽いものを希望します。 なお、OSは Windows XP HE を使用していますが、MSオフィス系ソフトは使っていません。 Windows版Perlでの行の抽出の問題 Windowsのバッチファイルで、Perlを使って特定の文字列を含む行を抽出する処理を行っているのですが、うまくいかないケースがあります。 例えば、以下の線内のようなテキストがあって、 ---------------------- 〔a 〔A ゜a ゜A ---------------------- 大文字/小文字を問わず、「〔a」を含む行を抽出し、 以下の線内のような結果を得たいとします。 ---------------------- 〔a 〔A ---------------------- 検索対象ファイルの文字コードが「Shift-JIS」で、 「print if ( /〔a/i );」という構文で行を抽出すると、 以下の結果になってしまいます。 ---------------------- 〔a 〔A ゜a ゜A ---------------------- 「print if ( /〔a/ );」なら以下の結果になってしまいます。 ---------------------- 〔a ---------------------- 検索対象ファイルの文字コードを「UTF-8」にし、 「print if ( /〔a/ );」という構文で、 「〔a」を含む行を抽出しようとすると、何も行が抽出されません。 他のコマンドでの大文字/小文字問わない「〔a」を含む行の抽出は、 findstrでは得たい結果が得られ、 grep、AWKでは、Perl同様、「゜a」を含む行が抽出されてしまいます。 しかし、私が行いたい処理は、数百~数千程度の単語が書かれた単語のリストがあり、そのリストをスクリプト形式に置換して行を検索するので、スクリプトファイルに対応していないfindstrコマンドでは不便なのです。 上記の問題の原因が分かる方がおられましたら、お教え頂けないでしょうか。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございました。マクロを使用して前後行の出力が できるようになりました。