リンクに再帰的に従い、すべてのページでgrepを実行してください。

リンクに再帰的に従い、すべてのページでgrepを実行してください。

特定のユーザー名を見つけるために、以下のURLからいくつかのログを収集しようとしています。しかし、何の結果も得られず、実行を続けます。

grepfor="username"
urls=("https://tgstation13.org/parsed-logs/terry/data/logs/2019/01")
while [ ${#urls[@]} -ne 0 ]
do
    content="$(curl -s "$url[0]")"
    echo "$content" | grep "$grepfor"
    delete=($urls[0])
    add=(`echo "$content" | grep -Po '(?<=href=")[^"]*'`)
    urls=( "${urls[@]/$delete}" "{$add[@]}" )
done

ベストアンサー1

代わりに、配列"${urls[0]}"の最初の要素について。urls$urls[0]

配列の最初の要素を削除しurlsadd配列を最後に追加するには、次のようにします。

urls=( "${urls[@]:1}" "${add[@]}" )

常にすべての拡張子を引用してください${#urls[@]}。でも。

私はあなたのcursとgrepを詳しく見ていませんが、

printf '%s\n' "$content"

バックスラッシュをデータに保存したい場合。

関連:

おすすめ記事