Например, у меня есть файл log.txt, содержание может бытьПодсчитайте вхождения подстроки в целом Файл
GetData() starts 2014-11-30 17:05
GetData(100) ends 2014-11-30 17:05
printf("") starts 2014-11-30 17:05
printf() ends 2014-11-30 17:06
UpdateScreen(xxx) starts 2014-11-30 17:06
UpdateScreen(xx) end 2014-11-30 17:06
GetData() starts 2014-11-30 17:06
GetData(100) ends 2014-11-30 17:06
для каждого имени функции, я хочу, чтобы подсчитать вхождения в всем файле, и выводит статистику в файл output.txt.
output:
GetData: 4
Printf: 2
UpdateScreen: 2
Как это сделать с помощью команд командной оболочки linux, таких как awk?
Обновление
Текст() представляют собой параметры, передаваемые в функцию, таким образом, они являются динамическими, что означает, вызовы одному и тому же GetData может оставить различные журналы, такие как GetData (5) заканчивается, или GetData (100) или GetData (1000). Это также одно и то же для других функций.
Я хочу получить общее количество каждой функции, поэтому GetData (2) и GetData (100) будут считаться одним и тем же типом GetData.
Я хочу получить подстроку (например FunctionName + «(») от $ 1 и получить его вхождения, как добиться, что причины? это: «Текст in() является динамическим, что означает, что вызовы одного и того же GetData могут оставлять разные журналы, такие как GetData (5), или GetData (100) или GetData (1000). Это также то же самое для других функций . " – Steve
@Steve вы хотите получить отдельные подсчеты для GetData (5) GetData (100) и так далее или один счет для всего GetData – nu11p01n73R
Я хочу получить единственный счет для GetData и всех других функций, поэтому мне нужно разделить имя функции от $ 1 и поиск по всему файлу, за исключением использования $ 1 напрямую. Как это сделать? – Steve