Фильтрация нескольких URL-адресов из текстового файла

Есть несколько полезных инструментов, позволяющих узнать больше о командах Linux:

  1. cheatотобразит часто используемые параметры командной строки. Также вы можете добавить свой собственный command + option, который будет отображаться через cheatдля конкретной команды.
  2. Инструмент
  3. bropagesпредоставляет несколько примеров для командной строки, вы можете добавить свой собственный пример или проголосовать за данный пример после получения кода подтверждения через bro thanks. Команда, за которую необходимо проголосовать, появится в верхней части страницы bro.

2
11.05.2020, 05:06
1 ответ

Возможно, это не лучший вариант, но попробуйте вот это:

Создайте файл urlcheck.sh, затем дайте разрешение на выполнение. или просто введите эту команду:

touch urlcheck.sh
chmod +x urlcheck.sh

Вставьте приведенный ниже скрипт вurlcheck.sh

#!/bin/bash
TIMEOUT=3

if [ ! -f output404.txt ]; then
    touch output404.txt
fi

while IFS= read -r line; do
    OUT_URL=$(curl -I $line 2>&1 -m $TIMEOUT| awk '/HTTP\// {print $2}')
    if [ "$OUT_URL" == "404" ]; then
        echo $line >> output404.txt
        echo "$line written to output404.txt"
    else
        echo "$line     $OUT_URL"
    fi
done < "$1"

и сохраните.

Чтобы запустить скрипт:

./urlcheck.sh urls.txt

, затем проверьте output404.txt, сгенерированный сценарием.

Обратите внимание , что URL-адрес в каждой строке должен быть доступен для чтения curl, например https://unix.stackexchange.com/.

вы можете изменить время ожидания секунды в строке TIMEOUT=3.

0
28.04.2021, 23:15

Теги

Похожие вопросы