0

次のようなHTMLファイルがあります。

<td class='job-title'>
<h3>
<a href="/postings/46670">Line Cook</a>
</h3>
</td>

Line Cook上記のHTMLからの値を取得しようとしています。grepと正規表現を使用してこれを行うにはどうすればよいですか?

4

3 に答える 3

2

この短いgrep行は次のように機能します。

grep -oP "(?<=>)[^<]*" file 

ただし、HTMLコードはその形式である必要があります(たとえば>Line Cook<)。1行である必要があります。そうでない場合、grepは失敗します。HTMLが大きい場合は、パーサーを使用することをお勧めします。

于 2013-02-07T22:47:28.020 に答える
0

これは、ファイルの残りの部分がどのように見えるかに応じて、必要な場合とそうでない場合があります。

$ gawk -F'[<>]' -v RS='</td>\n' '{print $(NF-4)}' file
Line Cook
于 2013-02-09T21:52:14.200 に答える
0

私も同じような挑戦をしました。Jenkinsのシェルスクリプトを使用して、HTML応答の最後のテーブルセルの内容をキャプチャする必要がありました。

<BODY bgcolor=#dddddd>
<TABLE bgcolor=#dddddd border=1>
<TR>
<TD valign="top"><B>aliasName</B></TD>
<TD>jms_aliasName</TD>
</TR>
<TR>
<TD valign="top"><B>messageCount</B></TD>
<TD>0</TD>
</TR>
</TABLE>
</BODY>

curlを使用してサービスを呼び出し、このページを作成します。次のページにパイプして変数を入力しました。

response=`/usr/bin/curl -s http://$host:$port/invoke/CustomService?aliasName=jms_aliasName | sed -n '/<TD>/,/<\/TD>/H; /<TD>/h; /\/TD/{x;s/<TD>\(.*[^\n]\)\n*<\/TD>/\1/p;}' | tail -n 1`

魔法であるsedコマンドを他の人に感謝します。

| sed -n '/<TD>/,/<\/TD>/H; /<TD>/h; /\/TD/{x;s/<TD>\(.*[^\n]\)\n*<\/TD>/\1/p;}' | tail -n 1
于 2016-10-21T16:34:07.233 に答える