Думаю, тут недоразумение. Независимо от того, работают ли zip-программы или нет, зависит от того, установлен ли он на сервере, а не от программы, которую вы используете для ssh на сервер (это может быть PuTTY, SSH Tectia или что-то еще).
Хотя это маловероятно, возможно, программа zip
была удалена с сервера, и это объясняет, почему вы не можете ее найти. В этом случае вам нужно будет перенести исходные файлы на сервер, на котором установлен zip.
Более правдоподобное объяснение состоит в том, что вы неправильно вызываете программу zip
. Набрав whereis zip
, вы увидите его местоположение.
cat <(head -n 11 virtual.txt | cut -d: -f1) <(sed 's/.*: //' virtual.txt) | xargs -d '\n' -n 11 | column -t
Количество строк на виртуальную машину в этом случае жестко запрограммировано -11. Будет лучше заранее подсчитать его и сохранить в переменной, а затем использовать эту переменную в коде.
Пояснение
cat <(command 1) <(command 2)
-<()
делает вывод command
похожим на временный файл. Поэтому cat
объединяет два файла и передает их дальше.
head -n 11 virtual.txt | cut -d: -f1
дает нам будущие заголовки столбцов. Одна запись виртуальной машины — это первые одиннадцать строк, для ее получения используется команда head
. cut
разбивает эту запись на два столбца и печатает только первый. sed 's/.*: //' virtual.txt
-дает нам будущие значения столбца. sed
удаляет весь ненужный текст и оставляет только значения. xargs -d '\n' -n 11
. Каждый элемент ввода завершается символом новой строки. Эта команда получает элементы и печатает их по 11 в строке.
column -t
-нужен для красивых -печатных дисплеев. Он отображает наши строки в виде таблицы. В противном случае каждая строка будет разной ширины.
Выход
Virtual Machine ID Status Memory Uptime Server Pool HA Mode VCPU Type OS
OL6U5 0004fb00000600003da8ce6948c441bb Running 65536 17835 Minutes MyOVS1.vmorld.com HA-POOL false 16 Xen PVM Oracle Linux 6
OL6U6 0004fb00000600003da8ce6948c441bc Running 65536 17565 Minutes MyOVS2.vmorld.com NON-HA-POOL false 16 Xen PVM Oracle Linux 6
OL6U7 0004fb00000600003da8ce6948c441bd Running 65536 17835 Minutes MyOVS1.vmorld.com HA-POOL false 16 Xen PVM Oracle Linux 6
Используйте datamash
и ее опцию transpose
, чтобы поменять местами строки и столбцы в файле.
datamash -t: transpose < infile.txt
По умолчанию транспонирование проверяет, что ввод имеет одинаковое количество полей в каждой строке, в противном случае происходит сбой с ошибкой, и вы можете отключить его строгий режим, чтобы разрешить отсутствующие значения--no-strict
datamash -t: --no-strict transpose < infile.txt
Также вы можете использовать --filler
для установки отсутствующего -значения заполнения поля:
datamash -t: --no-strict --filler " " transpose < infile.txt
получено изdatamash manual