- 締切済み
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'... のようにして実行させたいです。
- みんなの回答 (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% (4900/10358)
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% (2801/7250)
sedなど、という話はよくわかりませんが、まさしくsedなどの仲間であるawkを使ってください。 awk '{print $2}' でしょうね。これにたいしてテキストを流し込んでください。 Windowsだったらgawkです。 gawk "{print $2}" となるでしょう。 Windowsの場合はlinuxと違い、awkは最初からあるわけではないのでgawk.exeをダウンロードします。