- 締切済み
sedなどで、特定の文字列内の数値を抽出したい
sedなどで、特定の文字列内の数値を抽出したい シェルスクリプト内で、sedなどを使って特定の文字列内の文字列を抽出したいのですが、どうすればいいでしょうか? たとえば、job 999 at 2016-09-28 00:00のなかから、job ~ at内の「999」を抜き出したいです。 echo job 999 at 2016-09-28 00:00 | sed -e 's///g'... のようにして実行させたいです。
- jss1004
- お礼率0% (0/4)
- その他(プログラミング・開発)
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- M_Sato
- ベストアンサー率54% (550/1003)
echo job 999 at 2016-09-28 00:00|sed -n -e "s/^job \([0-9]*\) at.*$/\1/p" - > test.txt ではどうでしょう。-nでデフォルト出力を抑制しないと、マッチしない行まで出力されると思います。
- notnot
- ベストアンサー率47% (4846/10257)
echo job 999 at 2016-09-28 00:00 | sed 's/.*job \(.*\) at.*/\1/'
- trapezium
- ベストアンサー率62% (276/442)
sed でというなら echo job 999 at 2016-09-28 00:00 | sed 's/^job *//;s/ .*$//' あとは sed の代わりに ... | awk '{print $2}' ... | cut -f2 -d\ でもシェルスクリプト内でというなら普通に a="job 999 at 2016-09-28 00:00" b="${a#* }" echo "${b%% *}" set -- $a echo $2
- hue2011
- ベストアンサー率38% (2800/7250)
sedなど、という話はよくわかりませんが、まさしくsedなどの仲間であるawkを使ってください。 awk '{print $2}' でしょうね。これにたいしてテキストを流し込んでください。 Windowsだったらgawkです。 gawk "{print $2}" となるでしょう。 Windowsの場合はlinuxと違い、awkは最初からあるわけではないのでgawk.exeをダウンロードします。
関連するQ&A
- sedなどで、特定の文字列の後の文字列を抽出したい
sedなどで、特定の文字列の後の文字列を抽出したい シェルスクリプト内で、sedなどを使って特定の文字列の後の文字列を抽出したいのですが、どうすればいいでしょうか? たとえば、abcXYZ123defghiのなかから、XYZの後の「123」を抜き出したいです。 echo abcXYZ123defghi | sed ... のようにして実行させたいです。
- ベストアンサー
- その他(プログラミング・開発)
- 特定文字列間の文字列の抽出の際についての質問なのですが、
特定文字列間の文字列の抽出の際についての質問なのですが、 例 xxxxxaiueoyyyyyaiueoyyyyy となっている場合aiueoだけを抽出したいのですが、 sed -n 's/.*xxxxx\(.*\)yyyyy.*/\1/p' とすると aiueoyyyyyaiueo が出力されてしまいます。 エンド文字が複数あった場合最初にマッチしたものまでの抽出は どのようにしたら宜しいのでしょうか?
- ベストアンサー
- Linux系OS
- OpenOfficeで文章から特定文字列を抽出する
OpenOfficeを利用しています。 かなり異例なのですが、 ・文章の中に特定の文字列があるかを検索→ある場合はTrue、ない場合はFalce ・Trueの場合VLOOKUPでその文字列を参照として指定された数値を返す このようなことをやりたいのですが、なにかうまくやる方法はないでしょうか? マクロの知識がないのでできれば関数でお願いします。 そのような方法がなければ文章中の特定の文字列を抽出、その抽出した文字を参照としてVLOOKUPで指定された数値を返す、という方法でも構いません。 例として画像を添付しておきます。 例と言うよりは、実際に作ってるものなのですが…… A列からE列までをVLOOKUPで使う参照表とし、G列の文字列を検索値として、D列の数値をI列の結果として返したい、ということです。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- sed コマンドについて
はじめまして 当方、初心者で勉強の身です。ご回答頂けたら幸いです。 linuxのシェルファイルが100以上あり、こちらの全ファイル内に含まれる文字列"ABCDE"を文字列"12345"に置換をしたいと思っています。 sed コマンドで sed -e "s/ABCDE/12345/g" *.csh のように実行しても、画面上に変換後が表示されるだけで その後、ファイルを見ても置換されていません。 どのようにすれば、全ファイルが修正されるのでしょうか。 以上です。回答の方をよろしくお願い致します。
- ベストアンサー
- Linux系OS
- sedでファイルで条件指定の場合
スクリプト初心者です。 sedコマンドを使用して文字列の置換をおこないたいのですが、条件がたくさんあるため、 条件部分をシェルのファイルと別ファイルにして実行したいです。 その際、シェル実行時の引数を条件ファイルに入れたいのですが、通常の文字列扱いになってしまい困っています。 アドバイスをお願いいたします。 ・test.sh find $1 -type f | xargs sed -i -f mypattern.sed ・mypattern.sed s|${1}aaa|/bbb|g test.sh hoge と実行した場合 "hogeaaa" を "bbb" に置換したいです。
- ベストアンサー
- その他(プログラミング・開発)
- エクセルで特定文字列の抽出する方法を教えてください。
エクセルで特定文字列の抽出する方法を教えてください。 たとえばG00X-483.931Y-412.2R5.0 と書かれてるセルからXの値「-483.931」だけを抽出したいのですが分からなくて困ってます。 またこの数値は8文字と決まってないのでX~Yの間の数値と言う感じで抽出したいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 文字列から数値を抽出したいのですが・・。
文字列から数値(integer型)を抽出したいのですが、うまくいきません。 val関数だと文字の途中の数値が判別できないし、困っています。 よろしくお願いします。 ※以下、文字列と数値の関係です。 ・"文字列" → 抽出したい数値 "0k,abc,5k,abc3.0" → 0530 "abc()_3t" → 3
- ベストアンサー
- Visual Basic
- 文字列から特定の文字を抜き出す
こんにちは。 シェルスクリプトで文字列から特定の文字を抜き出し、 変数に入れたいのですが、うまくいきません。 申し訳ありませんが、アドバイスをお願いいたします。 文字列 $moji=aaa_bbb_ccc (文字は変動します) $a=aaa $b=bbb $c=ccc と"_"毎に変数に代入したい。 echo $moji | awk -F_ '{print $2}' で文字を標準出力に取り出すことはできるのですが、 そこから変数に代入する方法がいまいち分かりません。
- ベストアンサー
- その他(OS)
- sedで特定行を抽出したいです
はじめまして、 下記のようなファイルがあり、sedで特定文字列(@@@, @@@@, @@@@@)を含む行のみを一回で抽出したいです。 sed -n -e "/p=300/,/eee/p" input > output' だと 不要な行も入ってしまいます orz... sedはWindows上のsed Logos 2.42を使用しています。 どのように書けば対象行のみを抽出できるか、ご教授をお願いいたします。 [ 読込み対象ファイル ] ***, @@@, @@@@, @@@@@は雑多な文字列 最初に不要な行が10~15行 <div class="aaa"> <a href="http://www.***.***/?p=300&***">@@@</a> </div> <div class="bbb"> <ul class="ccc"> <li class="ddd">@@@@</li> <li class="eee">@@@@@</li> <div class="aaa"> <a href="http://www.***.***/?p=300&***">@@@</a> </div> <div class="bbb"> <ul class="ccc"> <li class="ddd">@@@@</li> <li class="eee">@@@@@</li> 以下<div class="aaa">から<li class="eee">@@@@@</li>まで20回繰り返し。
- ベストアンサー
- Linux系OS
- シェルスクリプトで読み込んだ文字列の区切り文字以降の文字列を取得したい
ちょっと説明が難しいのですが aaa = bbb こういう文字列の右側のbbbを取り出したいのですが可能ですか? 全てこのようなら問題ないのですが、前後のスペースに問題があります _aaa = bbb や aaa=bbb aaa =__bbb アンダーバーはスペースのかわりです。 のように前後にスペースが1つ2つ入っていたり抜けていたりします。 aaa = bbb だったら i=`echo | sed 's/aaa\ =\ //'` のようにして取得できていますが、その他の処理がうまくできません そもそもシェルスクリプトでこのような処理は無理なのでしょうか? perl ではできたのですができればシェルスクリプトで完結させたいのです。 よろしくお願いします。 使っているシェルはzshです。
- ベストアンサー
- Linux系OS