Как получить правильный текст с помощью bash

Я новичок в сценариях 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

Спасибо за ответы

0
задан 12 November 2021 в 11:34

0 ответов

Другие вопросы по тегам:

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