проблемы рекурсии wget

Сохраните следующее в файл (например, split.awk )

BEGIN {
RS="\n\n";
FS="\n";
ORS=",";
}

{
    for (i=1;i<=NF;i++)
    {
        split($i, sf, "= ")
        print sf[2]
    }
    printf "\n"
 }

Затем запустите:

awk -f split.awk Test.txt

Или запустите всю команду как одну строку:

awk 'BEGIN {RS="\n\n";FS="\n";ORS=",";}{for(i=1;i<=NF;i++){split($i, sf, "= ")print sf[2]}printf "\n"}' Test.txt

Это работает следующим образом:

  • Блок BEGIN запускается один раз в начале и устанавливает запись разделитель ( RS ) для двух символов новой строки и разделитель полей ( FS ) для одной новой строки. Разделитель выходных записей ( ORS ) установлен в запятую.

  • Затем он перебирает каждое поле в записи ( NF - количество полей в текущей записи) и разбивает его на «=».

  • Затем он печатает правую часть этого разделения с запятой между ними ( ORS )

  • После каждой строки он печатает новую строку, чтобы дать вам формат CSV.

1
22.12.2014, 11:04
1 ответ

В настоящее время в современных Linux distros ext2, ext3 и ext4 одинаково поддерживаются, что означает возможность использования одного из них.

Источники:

-121--102799-

Наиболее распространенный, эффективный и правильный способ использования source или . в виде краткой формы. Например:

source /home/myuser/test/config

или

. /home/myuser/test/config

Однако следует учитывать проблемы безопасности, которые могут возникнуть при использовании дополнительного файла конфигурации с внешним источником, учитывая возможность вставки дополнительного кода. Для получения дополнительной информации, в том числе о том, как обнаружить и решить эту проблему, я бы рекомендовал взглянуть на раздел «Secure it» документа http://wiki.bash-hackers.org/howto/conffile#secure_it

-121--17351-

Существует несколько других ограничений, которые вы можете наложить на wget, чтобы достичь того, чего вы пытаетесь достичь, используя ваш пример.

Связанные параметры:

-D позволяет предоставить разделенный запятыми список принятых доменов - например, -D domain1.com, domain2.com обеспечит загрузку файлов только из этих двух доменов.

-l позволяет задать максимальную глубину рекурсии - используя собственное объяснение, примером будет -l 1 , что будет означать, если index.html домена 1 приведет к site.html домена 2, будет загружен site.html, но ничего, что сайт .html ссылается на. Хотя -l является довольно ограничительным, для получения всех требуемых файлов можно запустить wget несколько раз с различными ограничениями.

1
27.01.2020, 23:51

Теги

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