все дело было в 13м канале
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Gentoo Linux → Дневники начинающего «гентушника»
все дело было в 13м канале
вопрос скорее не по генте, а по линуксу в целом.
вопрос:
как перемещаться по вводу в консоли без мыши?
поясню:
например пишешь какую нибудь длииииную команду, и где то в середине допустил синтаксическую ошибку..
чтобы стрелками не двигать несколько раз нажимая и не тратя время, есть ли какие нибудь горячие клавиши для перемещения курсора влево-вправо, на одно слово, на два.. три..
как в редакторе vim к примеру
где по тексту можно просто быстро бегать.
надеюсь поняли меня
Можно, кстати, и как в Виме сделать навигацию, но, ИМХО, не очень удобно нажимать каждый раз Esc, чтобы по строке перемещаться. По умолчанию, bash использует emacs-подобные хоткеи.
Если Alt+клавиша не пеехвачены, можно и без Esc:
Alt+B - back - слово назад
Alt+F - forward - слово вперед
и т.д.
bormant, нет, вы неправильно поняли, я не о том.
По умолчанию в bash хоткеи как в emacs: Alt+f, Alt+b. Но, если сделать "set -o vi", то хоткеи станут как в vim: h, j, k, l для навигаци, dw/db - удалить слово вперед/назад, dd - удалить строку и так далее. Но для этих хоткеев нужно выйти (как в Виме) из режима редактирования. А вот для этого как раз и нужно нажать Esc.
Люди добрые, подскажите как реализовать следующую проверку условия.
если количество строк в файле с определенными словами равно 3,
то ...
нашел только следующее, а как дальше реализовать что то не получается.
cat путь/до/файла | grep искомая_строка | wc -l
показывает сколько строк с искомой строкой.
нужно реализовать следующее условие
if количество строк в файле равно 2
то действие
else
действия не требуется
done
спасибо
Вот пример: в файле test.txt проверяется количество строк содержащих шаблон 123. Если количество «попаданий» равно 3, пишется OK, в противном случае — NO.
[ $(grep 123 -c test.txt) -eq 3 ] && echo OK || echo NO#!/bin/bash
for file in 'from_mobatch_1/03-00*.log'
doecho ok1
if [ 'cat ${file} | grep RbsLocalCell=S | wc -w' -eq 3 ];
thencat ${file} | grep productName | awk '{print $2}' >> result1
echo ok2
fidone
в консоль выходит только ок1, следовательно условие
if [ 'cat ${file} | grep RbsLocalCell=S | wc -w' -eq 3 ]; не выполняется
в файл тоже ничего не записывается
'cat ${file} | grep RbsLocalCell=S | wc -w' ...либо обратные кавычки
`cat ${file} | grep RbsLocalCell=S | wc -w`...либо
$(cat ${file} | grep RbsLocalCell=S | wc -w)Конструкция cat ... | grep ... избыточна, grep и сам справляется с чтением файла wink
...да и ещё — grep «умеет» считать количество строк с заданным паттерном.
спасибо, вот изменил.
не помогает
#!/bin/bash
for file in 'from_mobatch_1/03-00*.log'
doecho ok1
if
[ 'cat ${file} | grep RbsLocalCell=S | wc -w' -eq 3 ]
thencat ${file} | grep productName | awk '{print $2}' >> result1
echo ok2fi;
done
спасибо, вот изменил.
Кавычки как были ' так и остались. Нужно `
cat ${file} | grep productName | awk '{print $2}'
Можно заменить на
awk '/productName/ {print $2}' ${file}Лупо, ошибка в условии, в качестве аргумента какая переменная должна быть?
стринговая данная или цифра?
может пробелы погасить нужно?
moshell, тогда огласите правильное условие.
Количество вхождений, соответственно, число.
О каких именно пробелах идёт речь? В некоторых конструкциях они обязательны.
Lupo Alberto,
cat file | grep RbsLocalCell=S | wc -l
считает количество строк.
при выполнении без скрипта, например
cat file | grep RbsLocalCell=S | wc -l >> example.txt
перед цифрой 3 пробелы неск штук в получаемом файле example.txt
условие должно быть таким
если количество строк == 3,
то действие,
любое другое количество строк, => действия не нужно, то есть даже указывать ничего не надо
if ведь ищет только true и false на сколько я знаю
moshell, не должно получаться никаких пробелов. Создал тестовый файл — нет никаких пробелов.
Почему вы упорно не хотите использовать?
grep 'RbsLocalCell=S' -c fileусловие должно быть таким
если количество строк == 3,
то действие,
любое другое количество строк, => действия не нужно, то есть даже указывать ничего не надо
http://linuxforum.ru/viewtopic.php?pid=252464#p252464
esernar@spbmas1> grep RbsLocalCell from_mobatch_1/03-001.log | wc -l
3
проверка без скрипта. пробелы создаются, отсюда и не равенство.
как приглушить пробелы?
moshell, покажите часть (или если не очень большой, полностью) файл 03-001.log.
Logging to file from_mobatch_1/03-001.log
####################################################################
# Welcome to MoShell 8.0v (LPA108514/1_R8V) #
# Finn Magnusson, Jan Pettersson #
# [url]http://utran01.au.ao.ericsson.se/moshell[/url] #
# Contact: Finn.Magnusson@ericsson.com #
# David.Smith@ericsson.com #
####################################################################
Checking ip contact...OK
HELP MENU : h
BASIC MO COMMANDS : m
OTHER MO COMMANDS : n
OTHER COMMANDS : o
PM COMMANDS : p
QUIT : q
03-001> lt all
120215-16:13:56 10.25.160.231 8.0v stopfile=/tmp/13484
Checking MOM version...RBS_NODE_MODEL_N_1_5
Parsing MOM (cached): /home/esernar/moshell/jarxml/RBS_NODE_MODEL_N_1_5.xml.cache.gz .............................................................Done.
Using paramfile /home/esernar/moshell/commonjars/pm/PARAM_RBS_N_1_0.txt
Parsing file /home/esernar/moshell/commonjars/pm/PARAM_RBS_N_1_0.txt .............................................................................Done.
Fetching IOR file...Done.
Connecting to 10.25.160.231:56834 (CorbaSecurity=OFF, corba_class=2, java=1.5.0_24, jacoms=R73D25, jacorb=R73D01)
**** Welcome to the Simple Mo Browser (version 3.0)!
Trying file=/home/esernar/moshell_logfiles/logs_moshell/tempfiles/20120215-161351_13175/ior13175
**** Test Construction OK
****
$mobrowser_pid = 14086
Connected to 10.25.160.231 (SubNetwork=ONRM_RootMo_R,SubNetwork=RNC01KGD,MeContext=03-001,ManagedElement=1)
Connected to 10.25.160.231 (SubNetwork=ONRM_RootMo_R,SubNetwork=RNC01KGD,MeContext=03-001,ManagedElement=1)
Last MO: 1953. Loaded 1953 MOs. Total: 1954 MOs.
03-001> get 0
120215-16:14:05 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
=================================================================================================================
0 ManagedElement=1
=================================================================================================================
ManagedElementId 1
applicationConfiguration t[0] =
faultTolerantCoreStates s[1] = ManagedElement=1,Equipment=1,Subrack=1,Slot=1,PlugInUnit=1;Active
healthCheckResult Struct{3}
>>> 1.healthCheckResultCode = 99 (INITIAL_VALUE)
>>> 2.message =
>>> 3.startTime =
healthCheckSchedule t[0] =
logicalName 03-001
mimInfo Struct{3}
>>> 1.mimName = RBS_NODE_MODEL_N
>>> 2.mimVersion = 1.5
>>> 3.mimRelease =
mimName RBS_NODE_MODEL_N
productName RBS3216
productNumber 11/COH1092086
productRevision
productType Node
site 03-001
userLabel 03-001
=================================================================================================================
Total: 1 MOs
03-001> get cell avail
120215-16:14:05 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
=================================================================================================================
MO Attribute Value
=================================================================================================================
RbsLocalCell=S2C1 availabilityStatus 0 (NO_STATUS)
RbsLocalCell=S1C1 availabilityStatus 0 (NO_STATUS)
RbsLocalCell=S3C1 availabilityStatus 0 (NO_STATUS)
=================================================================================================================
Total: 3 MOs
03-001> st ru
120215-16:14:06 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
===================================================================================
Proxy Adm State Op. State MO
===================================================================================
38 1 (ENABLED) Equipment=1,RbsSubrack=RU1,RbsSlot=1,AuxPlugInUnit=1,RuDeviceGroup=1
52 1 (ENABLED) Equipment=1,RbsSubrack=RU1,RbsSlot=3,AuxPlugInUnit=1,RuDeviceGroup=1
66 1 (ENABLED) Equipment=1,RbsSubrack=RU1,RbsSlot=2,AuxPlugInUnit=1,RuDeviceGroup=1
225 1 (ENABLED) Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,Cbu=1,GeneralProcessorUnit=1
248 1 (ENABLED) Equipment=1,Subrack=1,Slot=12,PlugInUnit=1,RuifDeviceGroup=1
===================================================================================
Total: 5 MOs
03-001> st AuxPlugInUnit=[123],RetuDeviceGroup=1
120215-16:14:06 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
===================================================================================
Proxy Adm State Op. State MO
===================================================================================
109 1 (ENABLED) Equipment=1,SectorAntenna=1,AuxPlugInUnit=2,RetuDeviceGroup=1
130 1 (ENABLED) Equipment=1,SectorAntenna=2,AuxPlugInUnit=2,RetuDeviceGroup=1
305 1 (ENABLED) Equipment=1,SectorAntenna=3,AuxPlugInUnit=2,RetuDeviceGroup=1
===================================================================================
Total: 3 MOs
03-001> st SectorAntenna=[123],AuxPlugInUnit=2
120215-16:14:06 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
===================================================================================
Proxy Adm State Op. State MO
===================================================================================
108 1 (UNLOCKED) 1 (ENABLED) Equipment=1,SectorAntenna=1,AuxPlugInUnit=2
129 1 (UNLOCKED) 1 (ENABLED) Equipment=1,SectorAntenna=2,AuxPlugInUnit=2
304 1 (UNLOCKED) 1 (ENABLED) Equipment=1,SectorAntenna=3,AuxPlugInUnit=2
===================================================================================
Total: 3 MOs
03-001> st asc
120215-16:14:07 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
===================================================================================
Proxy Adm State Op. State MO
===================================================================================
103 1 (ENABLED) Equipment=1,SectorAntenna=1,AuxPlugInUnit=1,AscDeviceGroup=1
134 1 (ENABLED) Equipment=1,SectorAntenna=2,AuxPlugInUnit=1,AscDeviceGroup=1
310 1 (ENABLED) Equipment=1,SectorAntenna=3,AuxPlugInUnit=1,AscDeviceGroup=1
===================================================================================
Total: 3 MOs
03-001> alt
120215-16:14:07 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
Connecting to 10.25.160.231:56834 (CorbaSecurity=OFF, corba_class=2, java=1.5.0_24, jacoms=R73D25, jacorb=R73D01)
Trying file=/home/esernar/moshell_logfiles/logs_moshell/tempfiles/20120215-161351_13175/ior13175
Resolving the alarm service in OMS...
Simple Alarm Client initialized...
Starting to retrieve active alarms
Nr of active alarms are: 0
====================================================================================================================
Date & Time (Local) S Specific Problem MO (Cause/AdditionalInfo)
====================================================================================================================
>>> Total: 0 Alarms (0 Critical, 0 Major)
03-001> pr riu
120215-16:14:10 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
===================================================================================
Proxy MO
===================================================================================
===================================================================================
Total: 0 MOs
03-001> cabx
120215-16:14:10 10.25.160.231 8.0v RBS_NODE_MODEL_N_1_5 stopfile=/tmp/13484
Trying password from script file: /home/esernar/moshell_logfiles/logs_moshell/tempfiles/20120215-161351_13175/monodeCmd13484...
........
====================================================================================================================
SMN APN BOARD FAULT OPER MAINT PRODUCTNUMBER REV SERIAL DATE TEMP COREMGR
====================================================================================================================
0 1 CBU1 OFF ON 16HZ ROJ1192209/1 R5G A400740638 20080811 +25C *
0 2 ET-MFX OFF ON OFF ROJ1192315/2 R1B TU8GQ11937 20101022
0 9 RAX12 OFF ON 16HZ ROJ1192187/7 R1C TU8G387530 20080820
0 11 TX6HS-03 OFF ON 16HZ ROJ1192254/7 R1E TU8G376734 20080812
0 12 RUIF OFF ON 16HZ ROJ1192245/2 R2A AE59120479 20080811
--------------------------------------------------------------------------------------------------------------------
================================================================
SMN ProductNr Rev Name Date SerialNr
================================================================
0 ROJ60947/1 * Subrack DigSubrack
0 ROJ 609 47/1 R2A BACKPLANE 20080710 X911639122
----------------------------------------------------------------
============================================================================================================================================
SMN APN PORT BOARD FAULT OPER MAINT PRODUCT NR REV SERIAL DATE TEMP
============================================================================================================================================
0 12 port_0_dev_3 RU21 off steady 16hz KRC11816/3 R3A AE59343486 20080825 22.0
0 12 port_0_dev_3 FU12 OFF ON 16Hz KRC11817/1 R3A TU8F485793 20080817
0 12 port_1_dev_11 ASC off steady 16hz KRY11242/4 R1E TR47722054 20080829
0 12 port_4_dev_4 RU21 off steady 16hz KRC11816/3 R3A AE59296445 20080821 23.0
0 12 port_4_dev_4 FU12 OFF ON 16Hz KRC11817/1 R3A TU8F485800 20080817
0 12 port_5_dev_12 ASC off steady 16hz KRY11242/4 R1E TR47720244 20080829
0 12 port_8_dev_5 RU21 off steady 16hz KRC11816/3 R3A AE59296450 20080821 23.0
0 12 port_8_dev_5 FU12 OFF ON 16Hz KRC11817/1 R3A TU8F485767 20080817
0 12 port_9_dev_13 ASC off steady 16hz KRY11242/4 R1E TR47721946 20080829
--------------------------------------------------------------------------------------------------------------------------------------------
03-001> q!!
Bye...
Output has been logged to file from_mobatch_1/03-001.logmoshell, никаких пробелов не получается
P.S. Покажите
alias | grep grepПокажите
echo $PS1echo $PS2не могу, я дома.
быть может еще как то можно идентифицировать количество rbslocalcell?
на глаз то видно, а как скрипту это понять?
решение нашлось в виду того, что, сколько сот == столько и записей содержащих рег.выр при комманде
get cell avail
то есть количество строк, другими словами.
3. [ $foo = «bar» ]
В этом примере кавычки расставлены неправильно: в bash нет необходимости заключать строковой литерал в кавычки; но вам обязательно следует закавычить переменную, если вы не уверены, что она не содержит пробелов или знаков подстановки (wildcards).
Этот код ошибочен по двум причинам:
1. Если переменная, используемая в условии [, не существует или пуста, строка
[ $foo = "bar" ]
будет воспринята как
[ = "bar" ]
что вызовет ошибку «unary operator expected». (Оператор "=" бинарный, а не унарный, поэтому команда [ будет в шоке от такого синтаксиса)
2. Если переменная содержит пробел внутри себя, она будет разбита на разные слова перед тем, как будет обработана командой [:
[ multiple words here = "bar" ]Даже если лично вам кажется, что это нормально, такой синтаксис является ошибочным.
Правильно будет так:
[ "$foo" = bar ] # уже близко!
Но этот вариант не будет работать, если $foo начинается с -.
В bash для решения этой проблемы может быть использовано ключевое слово [[, которое включает в себя и значительно расширяет старую команду test (также известную как [)
[[ $foo = bar ]] # правильно!
Внутри [[ и ]] уже не нужно брать в кавычки названия переменных, поскольку переменные больше не разбиваются на слова и даже пустые переменные обрабатываются корректно. С другой стороны, даже если лишний раз взять их в кавычки, это ничему не повредит.
Возможно, вы видели код типа такого:[ x"$foo" = xbar ] # тоже правильно!
вот в чем был косяг.
откуда же такая трава у разработчиков?
ps/ это было восхищение
что то я понять не можу.
Пример 4-5. Позиционные параметры гласит мол
echo "Имя файла сценария: \"`basename $0`\"."
# Добавит путь к имени файла (см. 'basename')
а скрипт не добавляет, да и в вики нашел
http://ru.wikipedia.org/wiki/Basename
Примеры использования
basename /usr/bin/sort — выводит «sort».
basename include/stdio.h .h — выводит «stdio».
где соль?
простите за ламерский вопрос.
как подавить перенос строк в команде cat?
в man cat не нашел такого.
например есть такая опция nano -w не переносит слова.
нужно то же самое только для cat
moshell, IMHO, у cat другое предназначение wink
Попробуйте less -S.
Сворачивает строки не cat, а терминал, если речь идёт про вывод на консоль/терминал.
Можно при таком выводе обрезать длинные строки:
cat file | cut -c - $(tput cols)
Или определив аналогичную функцию, использовать её при выводе:
function nowrap { cut -c -$(tput cols); }
cat file | nowrap
спасибо)
Linux Forum → Gentoo Linux → Дневники начинающего «гентушника»
Форум работает на PunBB, при поддержке Informer Technologies, Inc