Linux---more命令学习
16lz
2021-01-22
More命令
more命令一般用于分页显示文件的内容,more会显示文件第一屏的内容,在屏幕的底部,more用反白字体显示文件的百分比,这时如果按空格键,文件的一下屏内容会显示出来,如果按回车键,显示的则是下一行,如果输入“ q ”,则是结束显示。
more命令的几种用法
第一种:
$ more filename
显示文件filename的内容。
第二种:
$ command | more
将command命令的输出分页显示。
第三种:
$ more < filename
从标准输入获取要分页显示的内容,而这时more的标准输入被重定向到文件filename。
more命令的工作流程
+-----------> 显示24行
| +------> 输入操作,打印信息
| | 可以输入回车键、空格键、q键
| +------> 输入回车键,打印一行
+ ---------> 如果空格键,打印24行
如果是q键 ---> 退出
more命令的编写---版本1
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define PAGELEN 24 5 #define LINELEN 512 6 7 void do_more(FILE *); 8 int see_more(); 9 10 int main(int ac,char *av[]) 11 { 12 13 FILE *fp; 14 if(ac == 1) 15 do_more(stdin); 16 else 17 while(--ac) 18 if((fp = fopen(* ++av,"r")) != NULL) 19 { 20 do_more(fp); 21 fclose(fp); 22 } 23 else 24 exit(1); 25 26 return 0; 27 } 28 29 30 void do_more(FILE *fp) 31 { 32 char line[LINELEN]; 33 int num_of_lines = 0; 34 int see_more(),reply; 35 36 while(fgets(line, LINELEN,fp)) 37 { 38 if(num_of_lines == PAGELEN) 39 { 40 reply = see_more(); 41 42 if(reply == 0) 43 break; 44 45 num_of_lines -= reply; 46 } 47 if(fputs(line,stdout) == EOF) 48 exit(1); 49 50 num_of_lines++; 51 } 52 } 53 54 int see_more() 55 { 56 int c; 57 printf("\033[7m more?\033[m"); 58 while((c = getchar()) != EOF) 59 { 60 if(c == 'q') 61 return 0; 62 if(c == ' ') 63 return PAGELEN; 64 if(c == '\n') 65 return 1; 66 67 } 68 return 0; 69 }
更多相关文章
- 为什么Linux不需要磁盘碎片整理?——借以复习文件系统方面的知识
- Linux中的文件权限和用户组
- Linux学习之文件系统权限及表示
- linux 文件系统的管理 (硬盘) 工作原理
- Linux系统的文件传输工具RZSZ
- Linux:目录中的最新文件。
- 对于Linux创建链接时终目录和文件处理的认识
- Linux文件归档和解压缩
- 如何使用“tail -1 * / filename”拖尾多个文件的最后一行