一致した後、sedエコー文字列があります。

一致した後、sedエコー文字列があります。

/pbs.twimg.com\/profile_images\/次の文字列を直接エコーする必要があります。これは私がいくつかの助けを借りて作った検索ツールであり、誰もがお勧めします。sedしかし、実際に使用したことはありませんsedだから私はよく理解していません。しかし、これはスクリプトです。

read -r Username ;\
wget -q -O - https://twitter.com/"${Username}" | \
 sed -n '/data-screen-name=.'"${Username}"'".*data-user-id=/I \
    {s/^.*data-screen-name=.'"${Username}"'".*data-user-id="\([0-9]*\)".*$/\1/Ip;q}'

スクリプトはほとんどのアカウントで正常に機能しますが、アカウントが非公開の場合は失敗します。代わりに検索すると、/pbs.twimg.com\/profile_images\/元のスクリプトなどの他の変数ではなくIDのみが表示されます(これがdata-screem-name=I can't use the行を選択する理由です)。TwitterAPI API の入手方法さえ知らない人にエクスポートするので、ユーザーができるだけ使いやすくなります。

複数のSO / SE投稿を見た結果、これは重複しているようには見えません。それならごめんなさい。

編集 - 個人設定ファイルでは、その行がHTML内にないため、機能しません。より詳細に調査した結果、/pbs.twimg.com\/profile_images\/ユーザーIDが個人アカウントと公開アカウントの両方に提供されることがわかりました。

サンプル:
今私のアカウントでこれを実行すると動作し、私のIDが表示されます。

Username="thematrix1o1"
717835108540030976

ただし、プライベートアカウントで実行するとIDを取得できません(行が存在しないため)。

Username="touchmytweets"
.

(報告書には点がなく、空白のみあり)

私が探すべきイメージはこれです。https://i.stack.imgur.com/WSACJ.jpg ご覧のとおり、彼女のIDは次のとおりです。726618076633030656
小規模サンプルレポート
ile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/726618076633030656\/wwYbLwbs_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/726618076633030656\/wwYbLwbs_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/418265825\/1463628965","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":n

ベストアンサー1

出力には、ランダムな量のランダムなコンテンツと関心のある行が含まれます。行を選択し、ID以外のすべての項目を削除して結果を印刷します。

 sed -n '/profile_images/s/.*profile_images\\\/\([0-9]\+\).*/\1/p'

行を処理した直後に終了すると、やや効率的になる可能性があります。

実際、これは元のコードの機能とほぼ同じです。変更される唯一のものは使用される正規表現です。

おすすめ記事