Сохраните следующее в файл (например, 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.
В настоящее время в современных 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
несколько раз с различными ограничениями.