Unixコマンドを使用して、標準ベースの正規表現を使用してhtmlダンプから特定の部分を選択します。

Unixコマンドを使用して、標準ベースの正規表現を使用してhtmlダンプから特定の部分を選択します。

ページダンプで投票数が1より大きいコマンドのみを表示する必要があるという問題があります。http://www.commandlinefu.comUnixコマンドを使用してください。リンクにファイルの一部を添付しました。https://pastebin.com/4dEQD5us。投票とコマンドは、次のhtmlタグで表示されます。

    divクラス="投票"

    divクラス="コマンド"

grep selectコマンドと投票タグを試しました。しかし、希望する答えを得るための条件をどのように設定するのかわかりません。

答え1

床にこのページ、そのリンクとともにアプリケーションプログラミングインターフェース。読んで理解すると、解析に適した形式(JSONなど)でデータを取得するには、次のように使用できることがわかります。

curl -s 'https://www.commandlinefu.com/commands/browse/json'

これは、以下を使用して投票数がゼロより大きいコマンドを簡単に抽出できるJSON文書ですjq

curl -s 'https://www.commandlinefu.com/commands/browse/json' |
jq -r '.[] | select(.votes|tonumber > 0).command'

.votes最上位配列の各項目はデータから文字列にエンコードされるため、数値に変換する必要があります。これがtonumberゼロと比較する前にこれを渡す理由です。

関連情報