递归地跟踪链接并在任何页面上运行 grep

递归地跟踪链接并在任何页面上运行 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]

要删除数组的第一个元素urls并将add数组添加到末尾,请使用

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

始终引用每个扩展,甚至${#urls[@]}.

我没有仔细看过你的curs和greps,但是使用

printf '%s\n' "$content"

如果您想确保在数据中保留反斜杠。

有关的:

相关内容