Re: bash: Однострочник для сложения 2 результатов команд
От: lpd Черногория  
Дата: 10.05.22 15:24
Оценка: +1
Здравствуйте, Glaurung, Вы писали:

G>Есть две команды:


G>Как можно это записать в одну строку так, чтобы

G>вычислилось 300?

Проще всего:

cat f1.log| grep -e 'ok: 200' -e 'fail: 300' | wc -l


Либо:

( cat f1.log | grep -e "ok: 200";cat f1.log |grep -e "fail: 300" ) | wc -l


Или, если нужно, арифметика в bash через $(())
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 10.05.2022 15:56 lpd . Предыдущая версия . Еще …
Отредактировано 10.05.2022 15:24 lpd . Предыдущая версия .
Re[3]: bash: Однострочник для сложения 2 результатов команд
От: Буравчик Россия  
Дата: 12.05.22 10:49
Оценка: +1
Здравствуйте, ·, Вы писали:

·>(echo 200; echo + ; echo 300) | xargs | bc


Оно это и делает, только более универсально
$ seq 10 | paste -sd+ | bc
55
Best regards, Буравчик
Re: bash: Однострочник для сложения 2 результатов команд
От: rising_edge  
Дата: 15.05.22 05:15
Оценка: -1
Здравствуйте, Glaurung, Вы писали:

G>
G>cat f1.log| grep 'ok: 200' | wc -l
G>


За
cat | grep
надо по пальцам бить.
bash: Однострочник для сложения 2 результатов команд
От: Glaurung Германия  
Дата: 10.05.22 14:49
Оценка:
Есть две команды:

cat f1.log| grep 'ok: 200' | wc -l
# выведет 100


cat f2.log| grep 'fail: 300' | wc -l
# 200


Как можно это записать в одну строку так, чтобы
вычислилось 300?

Ну что-то типа
bc `cat f1.log| grep 'ok: 200' | wc -l` + `cat f2.log| grep 'fail: 300' | wc -l`


только bc не работает....
Отредактировано 10.05.2022 14:49 Glaurung . Предыдущая версия .
Re: bash: Однострочник для сложения 2 результатов команд
От: kov_serg Россия  
Дата: 10.05.22 17:19
Оценка:
Здравствуйте, Glaurung, Вы писали:

G>только bc не работает....

А так?
(cat f1.log | grep 'ok: 200' | wc -l; echo + ; cat f2.log | grep 'fail: 300' | wc -l) | sed ':a;N;$!ba;s/\n/ /g' | bc
Re: bash: Однострочник для сложения 2 результатов команд
От: AleksandrN Россия  
Дата: 11.05.22 23:46
Оценка:
Здравствуйте, Glaurung, Вы писали:

G>Ну что-то типа

G>
G>bc `cat f1.log| grep 'ok: 200' | wc -l` + `cat f2.log| grep 'fail: 300' | wc -l`
G>


G>только bc не работает....


expr `cat f1.log| grep 'ok: 200' | wc -l` + `cat f2.log| grep 'fail: 300' | wc -l`
Re: bash: Однострочник для сложения 2 результатов команд
От: Буравчик Россия  
Дата: 12.05.22 05:19
Оценка:
Здравствуйте, Glaurung, Вы писали:

G>Как можно это записать в одну строку так, чтобы

G>вычислилось 300?

Используй paste:
(echo 100; echo 200) | paste -s -d+ | bc
Best regards, Буравчик
Re[2]: bash: Однострочник для сложения 2 результатов команд
От: · Великобритания  
Дата: 12.05.22 09:03
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б> (echo 100; echo 200) | paste -s -d+ | bc

(echo 200; echo + ; echo 300) | xargs | bc
avalon/3.0.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: bash: Однострочник для сложения 2 результатов команд
От: vsb Казахстан  
Дата: 12.05.22 09:43
Оценка:
echo "$(grep 'ok: 200' f1.log | wc -l) + $(grep 'ok: 200' f2.log | wc -l)" | bc -l
Re[2]: bash: Однострочник для сложения 2 результатов команд
От: kov_serg Россия  
Дата: 15.05.22 07:11
Оценка:
Здравствуйте, rising_edge, Вы писали:

G>>
G>>cat f1.log| grep 'ok: 200' | wc -l
G>>


_>За
cat | grep
надо по пальцам бить.

Лучше
zcat f1.log.gz | grep 'ok: 200' | wc -l
Re[3]: bash: Однострочник для сложения 2 результатов команд
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.05.22 12:14
Оценка:
Здравствуйте, kov_serg, Вы писали:

k> _>За
cat | grep
надо по пальцам бить.

k> Лучше
k>
k> zcat f1.log.gz | grep 'ok: 200' | wc -l
k>


А почему не zgrep?
Re[4]: bash: Однострочник для сложения 2 результатов команд
От: kov_serg Россия  
Дата: 15.05.22 13:35
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, kov_serg, Вы писали:


k>> _>За
cat | grep
надо по пальцам бить.

k>> Лучше
k>>
k>> zcat f1.log.gz | grep 'ok: 200' | wc -l
k>>


AB>А почему не zgrep?

В каких-то случаях можно и zgrep
zcat file | iconv -f cp1251 -t utf8 | pv | grep ...
Re[3]: bash: Однострочник для сложения 2 результатов команд
От: AleksandrN Россия  
Дата: 19.05.22 16:08
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>>За
cat | grep
надо по пальцам бить.

_>Лучше
_>
_>zcat f1.log.gz | grep 'ok: 200' | wc -l
_>


Ещё лучше
zgrep 'ok: 200' f1.log.gz
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.