|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
Замена строк в файле06.04.2015, 17:05. Показов 3799. Ответов 31
Метки нет (Все метки)
Здравствуйте. Помогите плз. Есть скрипт который собирает маки и ложит в файл. Файл получается такой:
spawn ssh 10.41.120.53^M ^M ^M05-Jan-2000 04:33:56 %MSCM-I-NEWTERM: New SSH connection from 10.10.10.10^M^M User Name:test^M ^MPassword:************^M ^M^M Artema-23# sh br ad^M ^MAging time is 300 sec^M ^M Vlan Mac Address Port Type ^M -------- --------------------- ------ ---------- ^M 1 00:15:c5:2a:12:78 1/g1 dynamic ^M 1 00:15:c5:2c:a5:4a 1/g1 dynamic ^M 980 00:11:5b:65:26:bb 1/g1 dynamic ^M 980 00:15:6d:5e:a1:5d 1/g1 dynamic ^M 980 00:15:6d:5e:a6:b0 1/g1 dynamic ^M 980 00:1c:c4:48:e2:1d 1/g1 dynamic ^M 980 00:1d:60:36:14:4b 1/g1 dynamic ^M 980 00:1e:8c:18:f0:7d 1/g1 dynamic ^M 980 00:21:97:36:23:d5 1/g1 dynamic ^M 980 00:24:1d:67:3a:a4 1/g1 dynamic ^M 980 00:24:54:cf:b8:b8 1/g1 dynamic ^M 980 00:25:22:82:52:9b 1/g1 dynamic ^M 980 00:26:18:eb:ca:bb 1/g1 dynamic ^M 980 00:27:22:76:fc:85 1/g1 dynamic ^M 980 00:27:22:76:fc:87 1/g1 dynamic ^M 980 00:27:22:dc:74:b0 1/g1 dynamic ^M 980 00:27:22:e4:db:62 1/g1 dynamic ^M 980 00:30:67:34:01:27 1/g1 dynamic ^M 980 00:30:67:34:5f:1d 1/g1 dynamic ^M 980 00:30:67:7f:90:52 1/g1 dynamic ^M 980 00:30:67:95:46:a2 1/g1 dynamic ^M 980 00:30:67:fb:06:ba 1/g1 dynamic ^M ^[[0mMore: <space>, Quit: q, One line: <return> ^M ^M 980 00:60:6e:42:6c:86 1/e11 dynamic ^M 980 00:e0:4c:62:0a:90 1/g1 dynamic ^M 980 00:e0:4d:7a:ca:0f 1/g1 dynamic ^M 980 00:e0:4d:9a:9a:aa 1/g1 dynamic ^M 980 00:e0:4d:b9:bc:d8 1/g1 dynamic ^M 980 00:e0:52:b7:72:b7 1/g1 dynamic ^M 980 00:e0:52:f4:70:6c 1/g1 dynamic ^M 980 00:e0:52:fb:41:64 1/g1 dynamic ^M 980 08:60:6e:86:8e:73 1/g1 dynamic ^M 980 08:60:6e:ee:be:04 1/g1 dynamic ^M 980 08:60:6e:f1:39:2b 1/g1 dynamic ^M 980 10:fe:ed:07:13:95 1/g1 dynamic ^M 980 10:fe:ed:79:55:3b 1/e20 dynamic ^M 980 10:fe:ed:fd:9c:57 1/g1 dynamic ^M 980 1c:6f:65:fe:d7:8e 1/g1 dynamic ^M 980 20:89:84:93:f8:88 1/g1 dynamic ^M 980 20:89:84:d9:8a:0f 1/g1 dynamic ^M 980 20:cf:30:a7:90:fa 1/g1 dynamic ^M 980 20:cf:30:bd:b1:e1 1/g1 dynamic ^M 980 24:a4:3c:42:c7:c8 1/g1 dynamic ^M 980 24:a4:3c:42:c9:f6 1/g1 dynamic ^M 980 24:a4:3c:42:cb:c8 1/g1 dynamic ^M ^[[0mMore: <space>, Quit: q, One line: <return> ^M ^M 980 24:a4:3c:42:cc:36 1/g1 dynamic ^M 980 24:a4:3c:48:0d:d5 1/g1 dynamic ^M 980 24:a4:3c:48:f1:b1 1/g1 dynamic ^M 980 24:a4:3c:7a:ba:aa 1/g1 dynamic ^M Это если я захожу в него через VI редактор. Если вывести файл с помощью cat , то получаю : root@SW-Cacti:/home/den4ik# cat /srv/dell-3324/fdb-3324.log spawn ssh 10.41.120.53 05-Jan-2000 04:33:56 %MSCM-I-NEWTERM: New SSH connection from 10.10.10.10 User Name:test Password:************ Artema-23# sh br ad Aging time is 300 sec Vlan Mac Address Port Type -------- --------------------- ------ ---------- 1 00:15:c5:2a:12:78 1/g1 dynamic 1 00:15:c5:2c:a5:4a 1/g1 dynamic 980 00:11:5b:65:26:bb 1/g1 dynamic 980 00:15:6d:5e:a1:5d 1/g1 dynamic 980 00:15:6d:5e:a6:b0 1/g1 dynamic 980 00:1c:c4:48:e2:1d 1/g1 dynamic 980 00:1d:60:36:14:4b 1/g1 dynamic 980 00:1e:8c:18:f0:7d 1/g1 dynamic 980 00:21:97:36:23:d5 1/g1 dynamic 980 00:24:1d:67:3a:a4 1/g1 dynamic 980 00:24:54:cf:b8:b8 1/g1 dynamic 980 00:25:22:82:52:9b 1/g1 dynamic 980 00:26:18:eb:ca:bb 1/g1 dynamic 980 00:27:22:76:fc:85 1/g1 dynamic 980 00:27:22:76:fc:87 1/g1 dynamic 980 00:27:22:dc:74:b0 1/g1 dynamic 980 00:27:22:e4:db:62 1/g1 dynamic 980 00:30:67:34:01:27 1/g1 dynamic 980 00:30:67:34:5f:1d 1/g1 dynamic 980 00:30:67:7f:90:52 1/g1 dynamic 980 00:30:67:95:46:a2 1/g1 dynamic 980 00:30:67:fb:06:ba 1/g1 dynamic 980 00:60:6e:42:6c:86 1/e11 dynamic 980 00:e0:4c:62:0a:90 1/g1 dynamic 980 00:e0:4d:7a:ca:0f 1/g1 dynamic 980 00:e0:4d:9a:9a:aa 1/g1 dynamic 980 00:e0:4d:b9:bc:d8 1/g1 dynamic 980 00:e0:52:b7:72:b7 1/g1 dynamic 980 00:e0:52:f4:70:6c 1/g1 dynamic 980 00:e0:52:fb:41:64 1/g1 dynamic 980 08:60:6e:86:8e:73 1/g1 dynamic 980 08:60:6e:ee:be:04 1/g1 dynamic 980 08:60:6e:f1:39:2b 1/g1 dynamic 980 10:fe:ed:07:13:95 1/g1 dynamic 980 10:fe:ed:79:55:3b 1/e20 dynamic 980 10:fe:ed:fd:9c:57 1/g1 dynamic 980 1c:6f:65:fe:d7:8e 1/g1 dynamic 980 20:89:84:93:f8:88 1/g1 dynamic 980 20:89:84:d9:8a:0f 1/g1 dynamic 980 20:cf:30:a7:90:fa 1/g1 dynamic 980 20:cf:30:bd:b1:e1 1/g1 dynamic 980 24:a4:3c:42:c7:c8 1/g1 dynamic 980 24:a4:3c:42:c9:f6 1/g1 dynamic 980 24:a4:3c:42:cb:c8 1/g1 dynamic 980 24:a4:3c:42:cc:36 1/g1 dynamic 980 24:a4:3c:48:0d:d5 1/g1 dynamic 980 24:a4:3c:48:f1:b1 1/g1 dynamic 980 24:a4:3c:7a:ba:aa 1/g1 dynamic 980 24:a4:3c:7a:bc:98 1/g1 dynamic 980 24:a4:3c:7a:c2:d0 1/g1 dynamic 980 28:10:7b:ef:cb:53 1/g1 dynamic 980 30:85:a9:97:a1:23 1/g1 dynamic 980 30:f9:ed:a8:be:4e 1/g1 dynamic 980 40:61:86:ab:40:85 1/g1 dynamic 980 50:46:5d:0d:40:04 1/e2 dynamic 980 50:46:5d:8c:05:c6 1/g1 dynamic 980 50:e5:49:69:e8:9b 1/g1 dynamic 980 60:a4:4c:32:7b:20 1/g1 dynamic 980 60:a4:4c:78:aa:d8 1/g1 dynamic 980 60:a4:4c:d1:9c:88 1/g1 dynamic 980 64:66:b3:00:c1:c5 1/g1 dynamic 980 64:66:b3:01:02:3c 1/g1 dynamic 980 6c:62:6d:ed:35:37 1/g1 dynamic 980 74:86:7a:5d:82:20 1/g1 dynamic 980 84:c9:b2:57:8a:4a 1/g1 dynamic 980 90:94:e4:25:7b:40 1/g1 dynamic 980 90:94:e4:35:39:f1 1/g1 dynamic 980 90:94:e4:f3:bd:31 1/g1 dynamic 980 90:e2:ba:4d:81:cd 1/g1 dynamic 980 90:e2:ba:55:13:05 1/g1 dynamic 980 90:e6:ba:b6:99:f3 1/g1 dynamic 980 90:f6:52:bc:48:0f 1/g1 dynamic 980 a0:b3:cc:72:4d:f6 1/g1 dynamic 980 a0:f3:c1:44:db:9d 1/g1 dynamic 980 a0:f3:c1:94:5d:79 1/e3 dynamic 980 ac:f1:df:23:9c:1e 1/g1 dynamic 980 b8:70:f4:0b:30:0a 1/g1 dynamic 980 b8:97:5a:17:42:c5 1/g1 dynamic 980 b8:a3:86:19:a8:d7 1/g1 dynamic 980 bc:ae:c5:7c:e9:86 1/g1 dynamic 980 bc:ee:7b:9d:9c:a8 1/g1 dynamic 980 bc:ee:7b:c6:ae:05 1/g1 dynamic 980 bc:f6:85:3f:d6:1b 1/g1 dynamic 980 c0:4a:00:48:2c:03 1/e4 dynamic 980 c8:3a:35:dc:58:a6 1/g1 dynamic 980 c8:3a:35:dd:c5:30 1/g1 dynamic 980 c8:3a:35:dd:c7:d8 1/g1 dynamic 980 c8:3a:35:de:cf:a8 1/g1 dynamic 980 c8:be:19:8c:61:9c 1/g1 dynamic 980 c8:d3:a3:2a:1c:f3 1/e5 dynamic 980 cc:b2:55:9e:e2:ab 1/g1 dynamic 980 d4:3d:7e:94:de:77 1/g1 dynamic 980 d8:50:e6:c7:00:7d 1/g1 dynamic 980 d8:fe:e3:8a:3d:a3 1/g1 dynamic 980 dc:9f:db:0e:51:a2 1/g1 dynamic 980 dc:9f:db:0e:51:ee 1/g1 dynamic 980 dc:9f:db:0e:55:0b 1/g1 dynamic 980 dc:9f:db:0e:55:24 1/g1 dynamic 980 dc:9f:db:0e:ec:39 1/g1 dynamic 980 dc:9f:db:32:01:32 1/g1 dynamic 980 dc:9f:db:32:01:3e 1/g1 dynamic 980 dc:9f:db:34:d6:ec 1/g1 dynamic 980 dc:9f:db:34:d7:6c 1/g1 dynamic 980 dc:9f:db:34:d7:9b 1/g1 dynamic 980 dc:9f:db:34:d7:ab 1/g1 dynamic 980 dc:9f:db:34:d7:d6 1/g1 dynamic 980 dc:9f:db:36:67:f4 1/g1 dynamic 980 dc:9f:db:36:6b:35 1/g1 dynamic 980 dc:9f:db:62:0d:e2 1/g1 dynamic 980 dc:9f:db:62:0f:80 1/g1 dynamic 980 dc:9f:db:98:43:15 1/g1 dynamic 980 e0:3f:49:40:b7:f9 1/g1 dynamic 980 e8:40:f2:db:22:e3 1/g1 dynamic 980 e8:94:f6:4c:32:5f 1/g1 dynamic 980 e8:9a:8f:ad:3c:06 1/g1 dynamic 980 f4:6d:04:91:a2:f5 1/g1 dynamic 980 f4:6d:04:b6:79:0f 1/g1 dynamic 980 f4:6d:04:ce:3c:7b 1/g1 dynamic 980 f4:6d:04:ce:44:31 1/g1 dynamic 980 f4:6d:04:f5:fd:9c 1/g1 dynamic 980 f4:ec:38:80:49:bf 1/g1 dynamic 980 f8:1a:67:01:17:b8 1/g1 dynamic 980 f8:1a:67:98:ab:c1 1/g1 dynamic 981 00:1c:c4:48:e2:1d 1/g1 dynamic 981 90:94:e4:25:7b:40 1/g1 dynamic 981 d8:fe:e3:8a:3d:a3 1/g1 dynamic Artema-23# root@SW-Cacti:/home/den4ik# Вот при выполнении cat, файл получается такого вида при котором дальнейшая его обработка будет проходить без ошибок (следующими скриптами) Что мне и надо. При таком выводе отсутствуют строки ^[[0mMore: <space>, Quit: q, One line: <return> ^M ^M 980 24:a4:3c:42:cc:36 1/g1 dynamic ^M Можно ли как-то избавится от ^[[0mMore: <space>, Quit: q, One line: <return> ^M что бы получить строку вида: 980 00:60:6e:42:6c:86 1/e11 dynamic Пробовал вот так: sed 's/.*<return>\(.*\)$/\1/g' < /srv/dell-3324/fdb-3424.log > /srv/dell-3324/fdb-3424.1.log Но так просто удаляется все с <return>. А нужно и пробел удалить вместе с ^M. Просто следующий скрипт берет переменные по шаблону (часть скрипта): #!/bin/bash base=/srv/dell-3324/grep-3324.log while read line do maxport=1/e24 macfail=$(echo $line | cut -d' ' -f2) portfail=$(echo $line | cut -d' ' -f3) ip=$(echo $line | cut -f1 /srv/dell-3324/ip-dell-3324.log) upmac=$(echo $macfail | sed 's/[[:lower:]]/\u&/g') probelmac=$(echo $upmac | sed 's/:/ /g') newport=$(echo $portfail | sed 's/1\/e//g') newmac=$(echo $probelmac | sed 's/ /:/g') То при его выполнении я получу: mac = 00:30:67:b6:83:2e port = 1/e8 mac = 10:fe:ed:79:55:3b port = 1/e20 mac = 50:46:5d:0d:40:04 port = 1/e2 mac = a0:f3:c1:94:5d:79 port = 1/e3 mac = <space>, port = Quit: mac = c8:d3:a3:2a:1c:f3 port = 1/e5 1 не правильный мак адрес с неправильным портом. Спасибо за помощь.
0
|
|
| 06.04.2015, 17:05 | |
|
Ответы с готовыми решениями:
31
Замена символов в файле Поиск и замена данных в файле Замена строки в файле, подсчет совпадений |
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
|||||||||||
| 06.04.2015, 17:53 | |||||||||||
|
Где Вы увидели переенные "по шаблону"? Кроме того, что кто Вас учил обрабатывать переменные с помощью sed и cut, зачем сначала менять двоеточия на пробелы, а потом обратно? И самое главное, если используете read, почему сразу не присвоить переменные?
Короче, вопросов гораздо больше чем надо, но если Вас волнует только нестандартная строка, то это решается на этапе считывания файла, удалив строки без данных прогоняя его например через sed
1
|
|||||||||||
|
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
|
|
| 06.04.2015, 17:57 | |
|
1
|
|
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 06.04.2015, 18:03 [ТС] | |
|
Меня никто не учил, я новичек в bash. Все делал сам. И да, меня волнует не стандартная строка которую нужно привести к виду как и другие строки, а не удалять.
0
|
|
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
||||||
| 06.04.2015, 18:16 | ||||||
Сообщение было отмечено olimpikys как решение
Решение
1
|
||||||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
||
| 06.04.2015, 18:24 [ТС] | ||
|
0
|
||
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
||||||
| 06.04.2015, 18:55 | ||||||
Сообщение было отмечено olimpikys как решение
Решение
Вывести только часть строки (-о) удовлетворяющую паттерну: от нескольких(одной и более (\+)) цифр ([0-9]) за котрыми идет <пробел>, потом любое количество (ноль и более (*)) любых символов (.) и заканчивающийся на <пробел>dynamic.
Добавлено через 10 минут Попробуйте
1
|
||||||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
||||||
| 06.04.2015, 19:17 [ТС] | ||||||
|
Можно еще вопрос? Скрипт перебирает построчно файл, и получает переменные порта который может принимать виды:
g1 - Up_Link port g2 - Up_Link port от e1 до e48 - port abonenta Как написать условие, при котором: если переменная с файла равна от e1 до e48, выполнить - "Порт абонента" иначе Up_Link? я сделал так, только тут конкретная переменные g1 которая сравнивается, с остальными. И так же придется сделать для переменной g2, т.е будет 2 условия с одинаковыми командами внутри них, а хоетлось бы одним условием:
0
|
||||||
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
||||||||||||||||
| 06.04.2015, 22:02 | ||||||||||||||||
Сообщение было отмечено olimpikys как решение
Решение
А Вы меня так и не поняли…
1
|
||||||||||||||||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 07.04.2015, 11:24 [ТС] | |
|
Спасибо огромное. Все понял. if [[ "$newport" = g[12] ]] (Если $newport принимает значение g1 or g2)
if [ "$newport" = g1 -o "$newport" = g2 ] (Если $newport принимает значение g1 or g2, только записано по другому, оператор -o не нашел в описаниях, думаю это (или)) case "$newport" in g[12]) echo "Up_Link" ;; e[1-9]|e[1-4][0-9]) echo "Port Abonenta" ;; *) echo "Unknown port" ;; esac понятно все, кроме e[1-9]|e[1-4][0-9]) echo "Port Abonenta" ;; e[1-9]| - зачем? e[0-9] - отвечает за единичную цифру e[1-4] - отвечает за десятки (т.к максимум 48 портов)
0
|
|
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
||
| 07.04.2015, 11:53 | ||
|
«|» обозначает «или» в данном случае. У Вас же может быть е1, е2 ... е9 и в этом случае паттерн e[1-4][0-9] не подойдет.
1
|
||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 05.05.2015, 18:25 [ТС] | |
|
можно еще вопрос?
Есть файл вида 1 c4c9.ec00.385a DYNAMIC epon0/2:6 1 fcfa.f7c5.2994 DYNAMIC epon0/1:9 1 fcfa.f7c5.2985 DYNAMIC epon0/3:2 1 fcfa.f7c5.2810 DYNAMIC epon0/1:11 1 fcfa.f7c5.2d22 DYNAMIC epon0/1:8 471 6470.025b.ab21 DYNAMIC epon0/1:11 1 fcfa.f7c5.294a DYNAMIC epon0/3:1 1 c4c9.ec00.3b98 DYNAMIC epon0/3:8 471 c46e.1fb0.2ab7 DYNAMIC epon0/1:8 471 c860.005f.9bb3 DYNAMIC epon0/1:10 472 c860.0006.dde1 DYNAMIC epon0/2:6 1 fcfa.f7c5.2868 DYNAMIC epon0/2:3 471 0022.b053.1456 DYNAMIC epon0/1:9 1 fcfa.f7c5.28e9 DYNAMIC epon0/1:10 1 fcfa.f7c5.2858 DYNAMIC epon0/2:1 1 fcfa.f7c5.2d1d DYNAMIC epon0/4:2 474 0860.6e7a.2351 DYNAMIC epon0/4:4 1 fcfa.f7c5.2895 DYNAMIC epon0/2:2 1 c4c9.ec00.4198 DYNAMIC epon0/4:7 473 b048.7ac8.25bd DYNAMIC epon0/3:1 471 6466.b311.fb23 DYNAMIC epon0/1:6 474 f81a.6764.c8bf DYNAMIC epon0/4:2 471 c46e.1fe0.eb03 DYNAMIC epon0/1:10 1 fcfa.f7c5.28a6 DYNAMIC epon0/3:3 1 fcfa.f7c5.28a5 DYNAMIC epon0/4:1 1 fcfa.f7c5.2882 DYNAMIC epon0/3:7 1 c4c9.ec00.3911 DYNAMIC epon0/4:6 1 fcfa.f7c5.295c DYNAMIC epon0/1:4 1 fcfa.f7c5.2727 DYNAMIC epon0/4:3 473 f092.1c4f.1589 DYNAMIC epon0/3:2 472 90f6.5262.6109 DYNAMIC epon0/2:7 473 c46e.1fe0.a85b DYNAMIC epon0/3:7 472 c46e.1f43.9e4f DYNAMIC epon0/2:3 1 c4c9.ec00.41b6 DYNAMIC epon0/2:7 474 c46e.1fe0.7af3 DYNAMIC epon0/4:1 1 fcfa.f7c5.28aa DYNAMIC epon0/4:4 471 74d4.3553.4f24 DYNAMIC epon0/1:4 1 fcfa.f7c5.28d0 DYNAMIC epon0/4:5 472 a0f3.c14c.bc47 DYNAMIC epon0/2:2 1 fcfa.f7c5.2928 DYNAMIC epon0/1:6 472 c46e.1fe0.8489 DYNAMIC epon0/2:1 472 3c97.0ed9.f44f DYNAMIC epon0/2:5 471 8434.978d.b365 DYNAMIC epon0/1:10 1 fcfa.f7c5.28a3 DYNAMIC epon0/3:5 1 fcfa.f7c5.2d06 DYNAMIC epon0/2:8 472 c46e.1fe1.0cdb DYNAMIC epon0/2:8 474 f81a.6779.4a1f DYNAMIC epon0/4:3 471 e894.f6cf.1237 DYNAMIC epon0/1:10 473 90f6.526c.6a03 DYNAMIC epon0/3:5 471 f8d1.114c.d739 DYNAMIC epon0/1:10 471 6466.b336.8a3f DYNAMIC epon0/1:10 474 6466.b3e7.2e89 DYNAMIC epon0/4:6 474 00e0.4d72.a3a8 DYNAMIC epon0/4:5 473 0025.22f1.cd6e DYNAMIC epon0/3:3 1 fcfa.f7c5.2938 DYNAMIC epon0/2:5 474 e894.f653.48e1 DYNAMIC epon0/4:7 400 0027.2294.ed2c DYNAMIC epon0/1:10 1 fcfa.f7c5.28b2 DYNAMIC epon0/1:3 471 a0f3.c1f0.e1bf DYNAMIC epon0/1:3 471 c46e.1fe0.ea7f DYNAMIC epon0/1:10 1 fcfa.f7c5.295b DYNAMIC epon0/1:1 471 c46e.1fe1.a595 DYNAMIC epon0/1:2 1 fcfa.f7c5.8c2d DYNAMIC epon0/1:2 Можно ли отсортировать файл таким образом, чтобы если epon0/1:10 встречается более 2х раз, удалить все строки где есть этот epon0/1:10? (epon как видно из файла, может принимать разные значения(номера портов)). если повторений 2, то оставить эти строки.
0
|
|
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 05.05.2015, 18:31 [ТС] | |
|
Вот так выглядит файл
0
|
|
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
||||||
| 05.05.2015, 19:09 | ||||||
1
|
||||||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 05.05.2015, 20:46 [ТС] | |
|
но я так понимаю это конкретно к записи epon0/1:10. А номер порта может быть разным.... epon0/1 - 0/4:1-64
т.е с другого оборудование значение может попасться epon0/4:33 или там epon0/2:15
0
|
|
|
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
|
| 05.05.2015, 22:26 | |
|
Cформулируйте внятно правило, а то ничего непонятно
0
|
|
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
|
| 06.05.2015, 14:32 [ТС] | |
|
нужно отсортировать файл по названию порта, если название порта встречается более 2х раз, удалить все строки с таким названием порта. Порт epon0/1:10 (где 0/1 физический интерфейс, может принимать значение от 0/1 до 0/4. И виртуальный интерфейс 10, может принимать значение от 1 до 64).
Добавлено через 11 часов 43 минуты Все, спасибо, разобрался. Но появился новый вопрос. Мак адреса абонентов я получаю в виде 0025.ab3b.d840 В биллинге этот мак записан как 00:25:ab:3b:d8:40 Как удалить все точки в 0025.ab3b.d840 и потом через каждые 2 символа вставить двоеточие?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||||||
| 06.05.2015, 15:04 | ||||||
1
|
||||||
|
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
|
||||||
| 06.05.2015, 18:04 [ТС] | ||||||
|
А еще такой вопрос.
Есть файлик содержания
Могу ли я в соответствии этой переменной получить соответствующую строку iso.3.6.1.2.1.2.2.1.2.30 = STRING: "EPON0/3:1" А еще лучше если получить последнюю цифру после iso.3.6.1.2.1.2.2.1.2. т.е цифру 30 Нумерация строк в файле отсутствует, это тут она появилась
0
|
||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||||||
| 06.05.2015, 20:07 | ||||||
1
|
||||||
| 06.05.2015, 20:07 | |
|
Помогаю со студенческими работами здесь
20
Замена слова в одном файле строкой из другого файла
Пропуск чтения пустых строк в файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|