• 締切済み

grepの出力について

alicia-yの回答

  • alicia-y
  • ベストアンサー率40% (85/208)
回答No.1

grep では出来ないですね。 perl を使いましょう。マッチした文字列を抽出することが出来ます。

関連するQ&A

  • [バッチファイル]一致した次の単語を出力したい

    コマンドの実行結果の標準出力をリダイレクトしてテキストファイルに書き出しました。 このファイルを読み取り、マッチした文字列の次の単語を出力したいのですが、 標準のDOSコマンド(あるいはコマンドラインで動作するフリーソフトを使用するのでも構いません。※perlなどのスクリプトや、複雑で習得の難しいもの、コマンドプロンプト拡張などは無しでお願いします)で実現するにはどうすれば良いでしょうか? テキストファイルの内容例 hogehoge: abcdefg この場合、"hogehoge:"で検索し、abcdefgを出力したいです。

  • grepの使い方

    "A.lst"と"B.lst"の2つのファイルがあります。 ともにディレクトリ階層の一覧が記述されています。 2つのファイルを比較して、A.lstのディレクトリ階層の文字列を 含む行を、B.lstから抽出して、リダイレクトで出力するには、 どういうコマンド操作になるのでしょうか。 特定の文字列ならば単純に、cat B.lst | grep moziretsu > sample.lst でいいわけですが、この文字列がA.lstファイル内に複数行あり、 それを順にgrepするにはどうすればいいのかがわかりません。 シェルもただいま勉強中です。 よろしくご教授願います。

  • grepでのグルーピングの扱いについて

    複数のグルーピングされた正規表現にマッチする文字列を取り出したいと思っています。 GNU awkコマンドではできるようですが、grepコマンドだけでも可能でしょうか? ■例 # 対象文字列: str="bash dash zsh" # 正規表現: re="([^ ]).+[ ]([^ ]).+[ ]([^ ]).+" # 欲しい結果(グルーピングされた正規表現にマッチする文字列) 1番目のグルーピングに対して: b 2番目のグルーピングに対して: d 3番目のグルーピングに対して: z ■環境 $ grep --version grep (GNU grep) 2.16 よろしくお願いします。

  • grepの出力結果の保存

    LinuXのgrepコマンドに関する質問です。 既存のファイルからgrepコマンドで特定の文字列が含まれた行だけを抽出し、その行数を数えるという課題です。 行数を数えるのでwcコマンドを使おうと思ったのですが、wcコマンドは「wc (ファイル名)」という使い方をしますよね。 ということは、grepコマンドで抽出した結果をファイルに保存しなくてはならないのですが、やり方がわかりません。

  • 【DOSコマンド】一致した文字列の次の単語を出力

    コマンドの実行結果の標準出力をリダイレクトしてテキストファイルに書き出しました。 このファイルを検索し、マッチした文字列の次の単語を出力したいのですが、 標準のDOSコマンド(あるいはコマンドラインで動作するフリーソフトを使用するのでも構いません)で実現するにはどうすれば良いでしょうか? テキストファイルの内容例 hogehoge: abcdefg この場合、abcdefgを出力したいです。 hogehogeは大文字小文字入り交じっています。

  • grepにマッチした正規表現の文字列を取得したい

    grepにマッチした正規表現の文字列を取得し、マッチした文字列を 一覧で取得したいのですが、方法がわかりません。 ※例 grep [0-9][0-9][0-9][0-9][0-9] 検索ファイル名 > 出力ファイル名 不明点あればお知らせください。 よろしくお願いします。

  • 正規表現にマッチする文字列の一括出力

    任意の正規表現を与えてやり、そのパターンに合致する文字列を 1行1文字列でテキストファイルに一括出力したいと考えています。 例えば、 [a-z][a-z][a-z] を与えてやると、 aaa aab aac aad ... ... zzx zzy zzz と、26の3乗で17576行の文字列をテキストファイルなどに出力。 LINUXのコマンドラインなら多少分かるのですが、プログラミングは さっぱりで、上記の目的につかえそうなユーティリティも探してみた のですが、見つけることはできませんでした。 よい方法がありましたら、ご教授よろしくお願いいたします。

  • grep 検索 検索対象の行と、そのn段下(もしくは上)までの行を合わせて出力したい

    ファイル ./test の内容は以下のとおりです。 test1 30 50 12 test2 60 12 01 test3 *** 20 *** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (1)例えば "test2"という文字列を含む行と、合わせて下3行を拾って表示させたい時は、どのようにコマンドを打てばよいのですか? test2 60 12 01 のように表示させたい。 (2)あらかじめ、とりだしたい情報がn行目にあるとわかっている時に、 取り出したい行を複数指定して表示させるにはどのようにコマンドを打てばよいですか?

  • VBスクリプトのコマンドについて

    テキストファイルを1行ずつ読み取り、必要な箇所のみを出力するプログラムを作成しています。 VBスクリプトで以下のことをする構文を教えてください。 1、ある1行から、ある文字列とスペースを除く方法    例(名前 abc → 名前を除きたい場合は「abc」を出力したい。) 2、ある1行から、ある文字列以降を抽出する方法   例(名前:abc →:以降をとりたい場合は「abc」を出力したい。) 3、2に加えて次の行も出力したい場合。   例(abc +次の行全部を出力)

  • grepコマンド

    質問させてください。 ファイルから指定した文字列を含まない行を別ファイルに 書き込もうとしています。 gunzip -c tmp.gz | grep -i -v '.txt' > work.txt 上記の場合、tmp.gzを解凍したファイルの行に大文字・小文字関係のない ".txt(Txt, tXt, TxT, ・・・"の文字列を含まない行を  work.txtに書き込んでいます。 これはうまくいったのですが、判定文字列を複数にすると 『ファイルを見つけようとしてエラーがでました』となります。 ちなみにコマンドは gunzip -c tmp.gz | grep -i -v '.txt' -i -v '.log' -i -v '.pdf'> work.txt 複数の大文字小文字を区別しない指定された文字列を含まない行を 別ファイルに書き込むにはどのようにすればいいのでしょうか? すみません、あまり経験がないのでお許しください。 よろしくお願いいたします。