###前提・実現したいこと
awk,grep等で正規表現で文字列を指定し、
その文字列のある行と次にその文字列がある行の1行上まで取得したい。
例えば、Yahoo天気(https://weather.yahoo.co.jp/weather/jp/27/6200.html)の
<p class="date">6月17日(土)</p>の行から <p class="date">6月18日(日)</p>の1行上までを表示したいです。###該当のソースコード
curl -s "https://weather.yahoo.co.jp/weather/jp/27/6200.html"
例えば、このコマンドで
curl -s "https://weather.yahoo.co.jp/weather/jp/27/6200.html" | grep "<p class=\"date\">" ```ヒット行だけ表示できますが、 ```ここに言語を入力 <p class="date">6月17日(土)</p> <p class="date">6月18日(日)</p>
このように正規表現を使用して、
curl -s "https://weather.yahoo.co.jp/weather/jp/27/6200.html" | grep? awk? 【<p class="date">[0-9]+月[0-9]+日(月火水目金土日)</p>】?
その文字列のある行と次にその文字列がある行の1行上まで取得したいのです。
###試したこと
awkコマンドの区切り文字に【<p class="date">[0-9]+月[0-9]+日(月火水目金土日)</p>】を指定して、'{print $2}'を表示しようとしたが、awkの書式が分からず上手くいきませんでした。
###補足
【[0-9]+月[0-9]+日】の行からその1行上まで表示する方法をご教授ください。
実行後の結果が
<p class="date">6月17日(土)</p> <p class="pict"><img src="https://s.yimg.jp/images/weather/general/forecast/size75/moon.gif" border="0" alt="晴れ">晴れ</p> <ul class="temp"> ........略........
となり(表示している)、........略........の1行下には<p class="date">6月18日(日)</p>がある(表示していない)状態。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/22 13:14