Если awk
не доступно, можно сделать это с cut
, grep
и wc
:
$ echo -e 'a,b, c,d\na,val1 ,val2,c' \
| cut -d ',' -f2,3 | grep '^ *val1 *, *val2 *$' | wc -l
Принятие ,
как разделитель (и не так или иначе вышел ,
включен) во входе. Для тестирования столбцы 2 и 3 используются вместо 14 и 15.
Обратите внимание что grep
шаблон позволяет запаздывать пробел после/прежде чем значений (можно удалить *
подшаблоны, если Вы не хотите это). Метасимволы ^
и $
соответствуйте началу и концу строки.
Канал grep "Value1" | grep "Value2"
от Вас вопрос не делает то, что Вы указываете - он соответствовал бы слишком много, например:
..., Value1Value2, , ... ..., Value1, Value2, ... ..., OtherValue1, Value2, ... ...
Если awk
доступно (это довольно стандартно), можно сделать это как это:
$ echo -e 'a,b, c,d\na,val1,val2,c' \
| awk -F, '$2 == "val1" && $3 == "val2" {++sum} END {print sum}'
awk
автоматически пробел обрезок от значений. END
особенно шаблон, который соответствует после того, как все строки обрабатываются.
inotify был бы хорошим кандидатом, чтобы сделать этот вид подсчета, но, как подозревается этот подход не идеален и подвержен условиям состязания, в конце я соглашаюсь, что на самом деле пытаюсь считать количество транзакций с этим, таким образом, было бы лучше сделать это в самом приложении и провести подсчет.