Привет им с проблемами со следующим кодом:Tcsh: преобразовать SED выхода на сумму ехрга
#|/bin/tcsh
TOTALMOS=`grep -v "Last MO:" x.log | grep "Total: .* MOs" | grep "Total: .* MOs" | awk '{ print $2 }' | tr '\n' ' ' | awk '{ print $1 }'`
RADIONO=`grep -n "get radio no" x.log | cut -f1 -d:`
RADIONO2=`expr "$RADIONO" + 6`
RADIONO3=`expr "$RADIONO2" + "$TOTALMOS"`
SED=`sed -n ''$RADIONO2','$RADIONO3'p' x.log | awk '{ print $3 }' | tr '\n' ' '`
echo "$SED"
Выхода следующий:
5 8 2 4 0 10 6 11 1 3 1 9
Пиза примечания: есть два перерыва в конец сценария "...1 9__"
Ну, что я действительно хочу, это SUM все номера, исключая финальные перерывы, из которых они происходят. Моя первая мысль заменила новые строки на «+», а затем запустила ее с помощью expr, но она не работает вообще ...
Пожалуйста, советую?
Заранее благодарен!
С наилучшими пожеланиями.
Никогда не пишите [t] csh scripts - Google "csh why not". Измените свой вопрос, чтобы показать репрезентативный тестовый пример с образцом ввода и вывода, чтобы мы могли помочь вам написать сжатый awk-скрипт, чтобы делать все, что вы пытаетесь сделать с помощью этого шара оболочки, awk и еще десятка других инструментов и конвейеров. –
Не используйте тег 'sh' для оболочек, несовместимых с стандартом POSIX sh! –
Почему бы не работать с csh? Они говорят, что это очень похоже на C, и я хотел начать с некоторого lenguage, который будет работать для меня в будущем, и я просто начинающий. Но я хочу узнать все связанные с Linux, чтобы улучшить свои навыки на работе! –