grep egrep sed正規表現の使い方とは?

このQ&Aのポイント
  • grep egrep sed等の正規表現について教えてください。
  • 一行の文字列から指定したパターンを取得する方法を教えてください。
  • Mac上でBSD系UNIXを使用している場合の正規表現の使い方について教えてください。
回答を見る
  • ベストアンサー

grep egrep sed等の正規表現

以下のような一行の文字列があります。 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 2286 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) ここから、この例で言えば2286 kb/sという文字列を取り出したいのですが、その正規表現が分かりません。 ","を区切りとしてcutコマンドでフィールド切り出しという考え方もありますが、洗練されていない気がします。 ご教授ください。 BSD系UNIXが化けたMacを使用しています。

  • BSD系OS
  • 回答数2
  • ありがとう数21

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

cutの方が良いと思いますが。 grep -o "[0-9]* kb/s"

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「2286 kb/sという文字列を取り出したい」のなら 2286 kb/s でいいのでは?

xanadu62
質問者

お礼

ありがとうございます。2286 kb/sは例であり、この数値は決まっていません。

関連するQ&A

  • 正規表現について

    VB6ですが・・・ '次のようなコードがあって <!-- と --> に囲まれる文字列を抜き出したのですが 'どのようなパターンマッチを書けばいいのでしょうか? 'HTMLのコメントのみを抜き出したいと思っています。 Const s = "<!--今日-->" _ & "<!--僕は--><!--正規表現を--><!--勉強します-->" Dim x As RegExp Dim v As match Set x = New RegExp x.Pattern = "パターン" x.Global = True For Each v In x.Execute(s) Debug.Print v.Value Next

  • 正規表現 matchメソッド

    Ruby認定試験対策問題の解説の中で、分からない箇所があったので、教えてください。 ■問題9の一部 s = "I slit the sheet, the sheet I slit, and on the slitted sheet I sit." /sheet/.match(s).length ■説明 文字列sの中と正規表現/sheet/にマッチした全体の文字列とマッチした部分文字列の配列の数を取得します。 ■回答 => 1 ■irbで自分なりに試してみた内容 irb> s = "I slit the sheet, the sheet I slit, and on the slitted sheet I sit." => "I slit the sheet, the sheet I slit, and on the slitted sheet I sit." irb> /sheet/.match(s).length => 1 irb> /sheet/.match(s) => #<MatchData:0x2c28d30> irb> /sheet/.match(s).class => MatchData irb> /sheet/.match(s).to_a => ["sheet"] irb> /sheet/.match(s).offset(0) => [11, 16] ■疑問 ・match(s).lengthの答えが、どうして1になるか分からない。 ・説明の中の「正規表現/sheet/にマッチした全体の文字列」とは何を指すのか? ・説明の中の「マッチした部分文字列の配列」が何を意味しているか? ・返ってきたMatchData オブジェクトの中身は何?  [11, 16]だけってこと? 一応、リファレンスも覗いてみたのですが、そこに掲載されていた内容もよく理解できませんでした。 http://www.ruby-lang.org/ja/man/html/Regexp.html#match bar = /foo(.*)baz/.match("foobarbaz").to_a[1] foo, bar, baz = /(foo)(bar)(baz)/.match("foobarbaz").to_a.values_at(1,2,3) さらに、そこに掲載されていた「正規表現にマッチした部分文字列だけが必要な場合に」 ってのは、どういう意味なのでしょうか。

    • ベストアンサー
    • Ruby
  • 正規表現による文字列の抽出

    $data = 'a b c<a href="x/y/z/hoge.jpg">hoge.jpg </a> …<A HREF = "aa/b/c/hoga.jpg">hoga.jpg</A>…'; 上記の文字列から正規表現で 『x/y/z/hoge.jpg』と『aa/b/c/hoga.jpg』を取り出して配列に格納しようと思っているのですがうまくいきません。 条件は 1.『<a href="』(大文字の場合、またはイコールの前後に半角スペースが含まれる場合もあります。)と『">』に囲まれています。 2.文字列中に何回登場するかは決まっておりません。 3.取り出す文字列の長さはきまっておりません。 以下のように書いてみたのですが…。書き方がわかりません。 どなたかご教授いただけないでしょうか。 よろしくお願いいたします。 while ($data =~ /<a\s[hH][rR][eE][fF].=.\".*?">/g){ push(@arr, $&); } foreach(@arr){print $_,"\n";}

    • ベストアンサー
    • Perl
  • 正規表現で"-" "0-9"以外を削除したい

    正規表現の質問となります。 現在 perl にて開発中です。 やりたいこととしては、任意の文字列の中から "-" "0-9"以外を削除したいです。 例) my $str = "iPhone4s\x{306f}\x{753b}\x{8cea}\x{306f}\x{3010}\x{3010}\x{3044}\x{3044}\x{3011}1.00\x{3011}\x{3051}\x{3069}\x{3001}\x{5f62}\x{304c}\x{3010}\x{3010}\x{53ef}\x{611b}\x{304f}\x{3011}-1.50\x{3011}\x{306a}\x{3044}\x{ff01}iphone3Gs\x{306f}\x{4e38}\x{3044}\x{5f62}\x{304c}\x{3010}\x{3010}\x{7d20}\x{6575}\x{3067}\x{3057}\x{3087}\x{3011}3.00\x{3011}\x{3002}\x{3042}\x{ff5e}\x{3042}\x{3001}\x{3042}\x{3068}\x{306f}\x{96fb}\x{6ce2}\x{304c}\x{6539}\x{5584}\x{3055}\x{308c}\x{305f}\x{3089}\x{3010}\x{3010}\x{3044}\x{3044}\x{3011}0.00\x{3011}\x{306e}\x{306b}\x{306a}\x{3041}"; # $strの値はランダムとします $str =~ s/\D//g; print "$str\n"; 出力結果 -> 41001503300000 成功すれば -> 4100-1503300000 どなた様か教えて頂ければと思いますmm

    • ベストアンサー
    • Perl
  • sedの正規表現について

    下記のsedコマンド正規表現の意味がわかりません どのような動きをしているのか教えて下さいm(__)m $ file_name="linux.txt" $ echo $file_name | sed -e "s/.*\.\([^.]*\)\$/\1/g" txt

  • 正規表現について(sed)

    いつもお世話になっております。 下記のようなURLから、特定のパラメータ以外はすべて除去したいのです。 http://XXX.jsp?rank=6&uid=aaaabfadfddfd&k=open&serial=12345&pr=ABC 残したいパラメータは k= a= pr= です。 s/[&?]\([k]\|[a]\|[pr]\\)=[0-9a-zA-Z%_-]\+//g この表現で、なんとか残したいパラメータを除去するのはできました。 「これ以外」という表現ができれば、望みの結果になると思うのですが、 いろいろ試してもうまくいきませんでした。 そもそも考え方が違うのかもしれないですが。。。 申し訳ありませんが、お詳しい方教えていただけると非常に助かります。 よろしくお願いいたします。 すみません、先ほどPHPでの処理でどうにかならないかと思い、 別の似たような質問を投稿してしまいました。 今回はLinuxのsedコマンドでの処理になるので、あえて別の投稿させていただいています。 申し訳ありません。。。 正規表現について(preg_replace) http://okwave.jp/qa/q7125468.html

  • 携帯動画変換君 Invalid value -qmin

    携帯動画変換君で着動画を作ろうとしたところError1が出てしまいます。 自分が体験したError1は (1)QuickTimeの原因 (2)対応する動画ファイルのcodecがない。 などで直ってきたのですが下記状況がどうしても直りません。 ffmpegを最新(2009.4.7配布)にしてるのになぜか Invalid value '-qmin' と出てしまいます。 avisynthも新しいのを入れなおして2.5.4です。? 怒られるのでffmpegのオプションを削っていくと、 最後にはリスト不足とでてしまいます。 どなたか似たような状況の方、いらっしゃいましたら是非おしえてくださいです。 T>AAA-1.mpg (3GPPファイル, 音声AAC形式一般設定/映像:320X240 Xvid 200kbps 15fps ) E>"C:\Temp\3GP_Converter034\cores\ffmpeg" -y -i "C:\Temp\3GP_Converter034\AAA-1.mpg" -timestamp "2009-04-21 22:04:44" -bitexact -qmin 1 -qmax 9 -vcodec xvid -fixaspect -s 320x240 -r 14.985 -b 200 -acodec aac -ac 2 -ar 44100 -ab 64 -f 3gp -muxvb 200 -muxab 128 "C:\DOCUME~1\XXX\LOCALS~1\Temp\3B1B9412-D013100D-EBFE9D9C-13119047.3gp" FFmpeg version SVN-r18607, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --enable-memalign-hack --enable-postproc --enable-gpl --enable-libfaac --enable-libfaad --disable-decoder=aac --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libx264 --disable-ffserver --disable-ffplay --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-static --extra-cflags='-mtune=generic -mno-sse2 -fno-tree-ch -fno-common' libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.26. 0 / 52.26. 0 libavformat 52.32. 0 / 52.32. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Apr 19 2009 02:14:09, gcc: 4.3.3 Input #0, mpeg, from 'C:\Temp\3GP_Converter034\AAA-1.mpg': Duration: 00:39:41.23, start: 0.406433, bitrate: 1361 kb/s Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 1150 kb/s, 29.97 tbr, 90k tbn, 29.97 tbc Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s Invalid value '-qmin' for option 'bitexact' A>Dialog : 処理実行中にエラーが発生しました [Error:1] T>Finished.

  • FFmpegでのサムネイル作成について

    現在、動画ファイルからサムネイルを切り出す処理をFFmpegを用いて行おうと考えております。しかし、aviやflvなどからはサムネイル切り出しが可能なのですが、mpg形式の動画ファイルからサムネイルが切り出すことができないのです。ネットを漁っても解決策が見つからず困っております。 そこで質問なのですが、FFmpegでmpg形式からサムネイルを切り出すことは不可能なのでしょうか? 出力結果は下記に示します。 --------------------------------------------------------------------- D:\ffmpeg>ffmpeg.exe -vframes 1 -ss 20 -an -deinterlace -i input.mpg -f image2 -s 120x90 -y output.jpg FFmpeg version SVN-r13283, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --enable-memalign-hack --enable-postproc --enable-swscale --ena ble-gpl --enable-liba52 --enable-libfaac --enable-libfaad --enable-libgsm --enab le-libmp3lame --enable-libnut --enable-libvorbis --enable-libtheora --enable-lib xvid --enable-libx264 --disable-ffserver --disable-ffplay --enable-avisynth --en able-small --enable-pthreads --extra-ldflags=-static --extra-cflags=-mtune=gener ic -mno-sse2 -fno-strict-aliasing libavutil version: 49.6.0 libavcodec version: 51.57.0 libavformat version: 52.14.0 libavdevice version: 52.0.0 built on May 25 2008 02:25:56, gcc: 4.3.0 Input #0, mpeg, from 'input.mpg': Duration: 00:05:22.27, start: 0.180000, bitrate: 1388 kb/s Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x240 [PAR 200:219 DAR 880:657], 1150 kb/s, 29.97 tb(r) Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 224 kb/s Output #0, image2, to 'output.jpg': Stream #0.0: Video: mjpeg, yuvj420p, 120x90 [PAR 220:219 DAR 880:657], q=2-31, 200 kb/s, 29.97 tb(c) Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop encoding frame= 0 fps= 0 q=0.0 Lsize= -0kB time=10000000000.00 bitrate= -0.0kbi ts/s video:0kB audio:0kB global headers:0kB muxing overhead -1.#INF00% --------------------------------------------------------------------- となっておりました。 質問にお答えいただけると幸いです。 よろしくお願いいたします。

  • FFmpegでAMRの使い方について

    FFmpegでAMRの使い方について お世話になります。現在、CentOS5.4にFFmpegをインストールし、WMVファイルを3gpへ変換しようとしています。ところが、AMRに関して使い方がわかりません。。。 [root@localhost hoge]#ffmpeg -y -i test.wmv -vcodec mpeg4 -b 64k -s qcif -r 15 -acodec libopencore-amrnb -ab 12200 -ar 8000 -ac 1 test3gp.3gp というコマンドを打ち込みますが、「Unknown encorder」エラーがでてしまいます。(下記のとおり、コンパイル時に「libopencore-amrnb」を入れてあります。ネットで色々と検索しますが「libamr_nb」に関する記事が多く、今回レビジョンが22916で、昔の「libamr_nb」を入れる事ができませんでした。) FFmpeg version SVN-r22916, Copyright (c) 2000-2010 the FFmpeg developers built on Apr 20 2010 15:33:40 with gcc 4.1.2 20080704 (Red Hat 4.1.2-46) configuration: --disable-ffplay --disable-ffserver --enable-gpl --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-pthreads --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-version3 --enable-libopencore-amrwb --enable-shared --enable-nonfree libavutil 50.14. 0 / 50.14. 0 libavcodec 52.66. 0 / 52.66. 0 libavformat 52.61. 0 / 52.61. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0.10. 0 / 0.10. 0 Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001) Input #0, asf, from 'maniwmv.wmv': Duration: 00:00:06.50, start: 3.100000, bitrate: 508 kb/s Stream #0.0: Video: wmv1, yuv420p, 640x480, 29.97 tbr, 1k tbn, 1k tbc Stream #0.1: Audio: pcm_u8, 8000 Hz, 1 channels, u8, 64 kb/s Unknown encoder 'libopencore-amr' どなたか、ffmpegの使い方に詳しい方がいらっしゃったら、お教えください。 宜しくお願いします。

  • expectを用いた正規表現[]のgrepについて

    題名のとおり、expectを用いた正規表現のgrepをしたいのですが、 以下のように記述し、入力し、実行すると expect -c " spawn ssh ~~~ expect \"password:\" send \"hogehoge\n\" expect \">\" send \"zgrep "探したいもの" /なんかのログ.log.gz | grep -v "[0-9]%"\n\" expect \">\" send \"exit\n\" " 以下のようにエラーが出てしまいます。 invalid command name "1-9" while executing "1-9" invoked from within [0-9]この部分を\[0-9\]このようにエスケープしてみても同じエラーが出てしまい、実行できません。 どのようにすれば正規表現として認識してくれるのでしょうか。 以上よろしくお願いいたします。