Удалить файл, если выполняется несколько условий

Что мне нужно

У меня есть существующий сценарий, который извлекает информацию о портах для доменов и сохраняет ее в текстовый файл с именем portscan.txt . Пример:

portscan.txt файл:

somedomain.com:80
somedomain.com:443

Я хочу удалить информацию только при соблюдении определенных условий. Эти условия включают в себя:

  • Файл с доменами должен иметь 2 или меньше строк
  • Порты должны быть только 80 или 443 (т. Е. Я не хочу удалять файл, если 8080, 8443 или любой другой порт существует в файле).

Примечание: Таким образом, пример файла, приведенного выше , следует удалить , но я не хочу удалять файл, если есть 2 строки, но порты 8080 или 8443 (или любой другой порт в этом отношении) Пример примерно такой:

somedomain.com:8443
somedomain.com:443

Это не должно быть удалено , а не .

Что я пробовал

Я попытался написать сценарий, и вот что у меня получилось:

#!/bin/bash

lines=$(cat portscan.txt | wc -l)
ports=$(cat portscan.txt | grep -Pv '(^|[^0-9])(80|443)($|[^0-9])')


if [[ $lines < 3 ]] && [[ $ports != 80 ]]; then
    if [[ $ports != 443 ]]; then
        echo "I need to delete this"
    fi
else
    echo "I will NOT delete this..."
fi

Это вторая визуализация сценария, я попытался вложить if операторы, потому что я не смог условие вроде этого:

ЕСЛИ сканирование портов.txt меньше двух строк И порты НЕ 80 ИЛИ 443

Я также попытался сделать это гораздо проще, например:

#!/bin/bash

lines=$(cat portscan.txt | wc -l)
ports=$(cat portscan.txt | grep -Pv '(^|[^0-9])(80|443)($|[^0-9])')


if [[ $lines < 3 ]] && (( $ports != 80||443 )); then
    echo "I need to delete this"
else
    echo "I will NOT delete this..."
fi

Я пробовал ((, потому что я читал, что это лучше использовать с арифметическими функциями - это то, что, как я думал, мне нужно, но я не так разбираюсь в bash с условными аргументами, когда это должно быть например: «Это и то или то».

Надеюсь, это имеет смысл, любая помощь будет принята с благодарностью!

12
задан 24 November 2021 в 15:17

0 ответов

Другие вопросы по тегам:

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