diff --git a/lab1/10215501408.txt b/lab1/10215501408.txt new file mode 100644 index 0000000..44950e5 --- /dev/null +++ b/lab1/10215501408.txt @@ -0,0 +1,87 @@ +#include "stdio.h" +#include "stdlib.h" +#include "time.h" +#include "math.h" +#include "string.h" + +/** + * @brief generate a file consists of 50000 lines of words, + * half line has a substring "computer", and is repeated. + * the clone one is stripped of "computer". + * + * 0 ~ 9 : 48 ~ 57 + * a ~ z : 97 ~ 122 + * + */ + + +void file_create(const char *_addr) +{ + FILE *file = fopen(_addr, "w"); + size_t line = 250000u; + srand(time(NULL)); + + // char *str = NULL; + for (size_t i = 0; i < line; i++) { + // str = (char *)malloc(abs(rand())%20 * sizeof(char)); + char str[abs(rand())%100+1]; + for (size_t j = 0; j < strlen(str); j++) { + if (abs(rand()) % 2 == 0) + str[j] = abs(rand())%10 + 48; + else + str[j] = abs(rand())%26 + 97; + } + strcat(str, "computer\n"); + fputs(str, file); + fputs(str, file); + // free(str); + } + + fclose(file); +} + +void file_show() +{ + FILE *file = fopen("words.txt", "r"); + int ch; + + while ((ch = fgetc(file)) != '\n') { + printf("%c", ch); + } + + fclose(file); +} + +int main() +{ + file_create("words.txt"); + return 0; +} + + + +//shell code +sort words.txt > opt1.txt +uniq opt1.txt > uniq1.txt + +sort -n words.txt > opt2.txt +uniq opt2.txt > uniq.txt + +cat uniq1.txt > override.txt +cat uniq.txt > override.txt + +cat uniq1.txt >> cct.txt +cat uniq.txt >> cct.txt + +grep -o "computer" words.txt > computer.txt + +grep -c "computer" words.txt + + +git add 10215501408.txt + +git commit -m “myc” + +git push -u origin master + +