Нижеприведенная команда выдаст вам требуемое наиболее часто повторяющееся слово вместе со счетчиком.
cut -d ' ' -f1 file.txt | sort | uniq -c | head -1
Что ж, glob()
кажется достаточно простым в использовании. Конечно, вы можете сделать это вручную, например. readdir()
и fnmatch()
.
#include <glob.h>
#include <stdio.h>
/* run as 'globtest "*.txt"' */
int main(int argc, char *argv[])
{
glob_t g;
if (argc < 2) {
printf("usage: %s <pattern>\n", argv[0]);
return 1;
}
int ret = glob(argv[1], 0, NULL, &g);
if (ret == 0) {
printf("found %d matches:\n", (int) g.gl_pathc);
for (int i = 0; g.gl_pathv[i]; i++) {
printf(" %s\n", g.gl_pathv[i]);
}
} else if (ret == GLOB_NOMATCH) {
printf("no matches!\n");
} else {
printf("some error happened\n");
}
}
Конечно, вам все равно нужно скопировать указатели (на строки )в массив, переданный в execv()
/ execve()
.