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 через $(())
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Re[3]: bash: Однострочник для сложения 2 результатов команд
Здравствуйте, ·, Вы писали:
·>(echo 200; echo + ; echo 300) | xargs | bc
Оно это и делает, только более универсально
$ seq 10 | paste -sd+ | bc
55
Best regards, Буравчик
Re: bash: Однострочник для сложения 2 результатов команд
Здравствуйте, 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 не работает....
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 результатов команд
Здравствуйте, 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
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
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 результатов команд
Здравствуйте, 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 результатов команд
Здравствуйте, kov_serg, Вы писали:
_>>За cat | grep
надо по пальцам бить.
_>Лучше
_>_>zcat f1.log.gz | grep 'ok: 200' | wc -l
_>
Ещё лучше
zgrep 'ok: 200' f1.log.gz
Пока на собственное сообщение не было ответов, его можно удалить.