質問: ### 前提・実現したいこと awk,grep等で正規表現で文字列を指定し、 **その文字列のある行**と**次にその文字列がある行の1行上まで**取得したい。 例えば、Yahoo天気(https://weather.yahoo.co.jp/weather/jp/27/6200.html)の 6月17日(土)の行から 6月18日(日)の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 "" ``` ヒット行だけ表示できますが、 ``` 6月17日(土) 6月18日(日) ``` このように正規表現を使用して、 ``` curl -s "https://weather.yahoo.co.jp/weather/jp/27/6200.html" | grep? awk? 【[0-9]+月[0-9]+日(月火水目金土日)】? ``` **その文字列のある行**と**次にその文字列がある行の1行上まで**取得したいのです。 ### 試したこと awkコマンドの区切り文字に【[0-9]+月[0-9]+日(月火水目金土日)】を指定して、'{print $2}'を表示しようとしたが、awkの書式が分からず上手くいきませんでした。 ### 補足 【[0-9]+月[0-9]+日】の行からその1行上まで表示する方法をご教授ください。 実行後の結果が ``` 6月17日(土) 晴れ ........略........ ``` となり(表示している)、........略........の1行下には6月18日(日)がある(表示していない)状態。
回答: > > 6月17日(土)の行から > > 6月18日(日)の1行上までを表示したいです。 > > > ``` ~~ | sed -n '/6月17日(土)<\/p>/,/6月18日(日)<\/p>/p' | sed '$d' ``` 補足の方は、意味がわかりません。