Я новичок в сценариях bash. Я пытаюсь создать сценарий, который проверяет устройства (tp-link, cisco, lynksys ...) для подключения через telnet и получить некоторую информацию.
Итак, первый скрипт работает без проблем:
#!/bin/sh
NOW=$(date +"%m-%d-%Y")
HOST='IPADDRES'
USER='USER'
PASSWD='PASSWORD'
CMD='enable'
CMD2='show mac address-table'
CMD3='terminal length 0'
(echo "$HOST - " ; (
echo open "$HOST"
sleep 1
echo "$USER"
sleep 1
echo "$PASSWD"
sleep 1
echo "$CMD"
sleep 1
echo "$CMD3"
sleep 1
echo "$CMD2\n"
sleep 30
echo "exit"
) | telnet ) > name.$NOW.txt
Когда я делаю: cat name.date.txt
, я получаю этот результат
hostname1 -
telnet> Trying hostname1...
Connected to hostname1.
Escape character is '^]'.
User Access Verification
Username:
Password:
Welcome to BDCOM P3310C EPON OLT
hostname1>enable
hostname1#terminal length 0
hostname1#show mac address-table
Mac Address Table (Total 311)
------------------------------------------
Vlan Mac Address Type Ports
---- ----------- ---- -----
All 8479.735b.9132 STATIC CPU
300 44d9.e776.d8b7 DYNAMIC g0/3
300 4c5e.0cff.6dea DYNAMIC g0/3
300 d4ca.6d9e.3280 DYNAMIC g0/3
Так что мне нужно экспортировать только эту строку 1 2 и 4 это так:
300 44d9.e776.d8b7 DYNAMIC g0/3
300 4c5e.0cff.6dea DYNAMIC g0/3
300 d4ca.6d9e.3280 DYNAMIC g0/3
Раньше ничего не надо было "Vlan Mac Address Type Ports"
Итак, я создаю этот скрипт:
cat name.date.txt | awk '$1<"ALL"{print $1" ",$2" ",$3" ",$4}'
И получаю следующий результат:
hostname1 -
-----------------------------
---- ----------- ---- -----
300 44d9.e776.d8b7 DYNAMIC g0/3
300 0002.9b80.7f28 DYNAMIC g0/3
300 0002.9b65.7b66 DYNAMIC g0/3
300 4c5e.0cff.6dea DYNAMIC g0/3
300 d4ca.6d9e.3280 DYNAMIC g0/3
Кого исправить?
Я просто экспортирую в файл только эту информацию:
300 44d9.e776.d8b7 DYNAMIC g0/3
300 0002.9b80.7f28 DYNAMIC g0/3
300 0002.9b65.7b66 DYNAMIC g0/3
300 4c5e.0cff.6dea DYNAMIC g0/3
300 d4ca.6d9e.3280 DYNAMIC g0/3
Если будет лучше если я могу экспортировать в таблицу или csv
Спасибо за ответы