Unixで文字列を検索して抽出する方法は?

Unixで文字列を検索して抽出する方法は?

Yahoo Financeとwgetを使用してデータをダウンロードしようとしていますが、Cookieと削りくずを取得する際にいくつかの問題があります。この例では、BTC-USD を使用し、「crumbstore.txt」というファイルに破片データを保存しました。

wget --no-check-certificate --save-cookies=cookie.txt "https://finance.yahoo.com/quote/BTC-USD/history?p=BTC-USD" -O crumbstore.txt

ここでは、ナビゲーションパス文字列を抽出して、以下に示す参照リンク($ crumb)に挿入しようとしています。この例の期間は、2017-01-01から2020-01-06までです。

wget --no-check-certificate --load-cookies=cookie.txt "https://query1.finance.yahoo.com/v7/finance/download/BTC-USD?period1=1483265281&period2=1578305313&interval=1d&events=history&crumb=$crumb" -O BTC-USD_price.csv

"crumbstore.txt"ファイルの構造を表示するには、grepを使用して次のコードを実行しました。

grep -o ".\{0,50\}CrumbStore.\{0,50\}" crumbstore.txt

私が得なければならないのは、「CrumbStore」:{"crumb":"に格納されている一連の文字と数字であることがわかります。XXXXXXXXXXXX"}。

これはcrumbstore.txtの断片であり、基本的な作業は「BdpohsJbyt」を抽出することです。本文で判断すると。

"secondary_accounts":{"list":"Pos(r) M(0) P(0) List(n)","list_item":"Bdt(asMenuBorder)","anchor":"Td(n) Td(n):h Py(16px) D(b) Cf C(#000) Bgc(asMenuHoverBgc):h"}}}}},"CrumbStore":{"crumb":"BdpohsJbyt."},"StreamStore":{"articleCategory":{"term":"","label":""}

ベストアンサー1

データはJSON形式のように見え、正しいツールをインストールするよりもダーティハッキングが広く使用されている非常に限られた環境で作業しない限り、リポジトリで利用可能なほとんどjqのディストリビューションにインストールして使用する必要があります。

実際のデータを見なければ、正しいjq呼び出しを書くことは不可能です。

おすすめ記事