$ awk -f script.awk file
#filename seqno phasename corundum_a corundum_b corundum_c corundum_scale corundum_Rwp
blah_001.xye 1 corundum 3 3 12 0.001 3
blah_002.xye 2 corundum 3.1 3.1 12.1 0.002 3.5
blah_003.xye 3 corundum 3.2 3.2 12.2 0.001 3.1
#filename seqno phasename silcon_NIST_a silcon_NIST_b silcon_NIST_c silcon_NIST_scale silcon_NIST_Rwp
blah_001.xye 2 silcon_NIST 5.4 5.4 5.4 0.002 3
blah_002.xye 3 silcon_NIST 5.41 5.41 5.41 0.004 3.5
blah_003.xye 4 silcon_NIST 5.42 5.42 5.42 0.002 3.1
Где script.awk
это
BEGIN { OFS = "\t" }
/^#/ {
# save header fields
for (i = 1; i <= NF; ++i)
header[i] = $i
next
}
# if column 2 contains a lower number than the previous line
# (or if no previous line with data), then output header
$2 < col2 || !col2 {
# output blank line if needed
if (print_blank) {
print ""
}
print_blank = 1
# print first three headers as-is
for (i = 1; i <= 3; ++i)
printf("%s%s", header[i], OFS)
# prepend column three to remaining headers
for (i = 4; i < NF; ++i)
printf("%s_%s%s", $3, header[i], OFS)
printf("%s_%s%s", $3, header[NF], ORS)
}
# print all lines and save value from column 2
{ col2 = $2; print }
Скрипт сохраняет заголовок из входных данных в массив header
. Когда мы находим второй столбец, значение которого меньше значения второго столбца предыдущей строки, мы выводим новый заголовок перед выводом данных. Заголовку предшествует пустая строка, если это не первый заголовок. Имена столбцов переменных берут свои имена из третьего поля.
Сценарий не принимает параметров.
Чтобы точно определить проблему, мне нужно больше подробностей о сервере. Но на самом деле все сводится к проблеме с DNS -.
Свяжитесь с администратором этого сервера и сообщите, что существует проблема с DNS и что разрешение записей A
и AAAA
для example.com
не удается.
Временное решение :замените example.com
IP-адресом сервера.
(Запуск ping example.com
на вашем компьютере покажет вам IP-адрес)
Изменить:Вы упомянули, что у вас также есть проблема с установкой модулей Python (сpip
). По той же причине pip попытается загрузить их с веб-сайта, о котором ему известно только имя хоста, а не IP-адрес.
Редактировать 2:Вы также можете самостоятельно выяснить, почему разрешение не удается, но я был бы осторожен!
Некоторым администраторам нравится небольшая помощь со стороны пользователей, другие могут сильно разозлиться, когда пользователи начинают шпионить.
Если сомневаетесь, :не делайте этого.
В любом случае, вот несколько команд, которые могут предоставить вам дополнительную информацию:
dig -t A example.com @8.8.8.8 | grep -v '^;' | grep A
(должен показать вам IP-адрес example.com)dig -t A example.com | grep -v '^;' | grep A
(должно показывать то же самое)resolvectl status | grep Server
(должен показать вам DNS-серверы вашего университета)systemctl status systemd-resolved
(должен быть активен)journalctl -u systemd-resolve
(не должно содержать ошибок)Сервер не имеет разрешения DNS -, возможно, он намеренно не имеет доступа к Интернету. Но вы можете использовать scp
для загрузки файлов на сервер.