在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
文章目录1.项目内容使用Golang开发Linux命令行中的selpg 2.设计说明2.1引入所需要的包
io,实现了一系列非平台相关的 IO 相关接口和实现,比如提供了对 os 中系统相关的 IO 功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。 os/exec,执行外部命令,它包装了 os.StartProcess 函数以便更容易映射到 stdin 和 stdout,并且利用 pipe 连接 I/O。 bufio,在 io 的基础上提供了缓存功能。在具备了缓存功能后, bufio 可以比较方便地提供 ReadLine 之类的操作。 os,提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。 fmt,实现格式化的输入输出操作,其中的 fmt.Printf() 和 fmt.Println() 是开发者使用最为频繁的函数。 pflag,提供命令行参数的规则定义和传入参数解析的功能。绝大部分的 CLI 程序都需要用到这个包。 2.2创立结构体
2.3main函数
2.4process_args函数主要是用于处理输入时候的各种错误,比如起始页码是负数,终止页码小于起始页码等情况,增加程序的健壮性。详见代码 2.5process_input函数用来对文件的内容进行处理,根据后缀参数的类型完成操作。详见代码 3.程序测试test.txt为准备好的数据文件,内容为数字001-050,每个一行。程序默认3行为一页。 3.1 selpg -s1 -e5 test.txt把test.txt的前5页内容输出到屏幕 3.2 selpg -s1 -e5 < test.txtselpg 读取标准输入,而标准输入已被 shell/内核重定向为来自“test.txt”而不是显式命名的文件名参数。输入的前5页被写至屏幕。 3.3 hello | selpg -s1 -e2hello程序的标准输出被 shell/内核重定向至 selpg 的标准输入。将第 1 页到第 2 页写至 selpg 的标准输出(屏幕)。 3.4 selpg -s1 -e6 -l2 test.txt > out.txtselpg 将前6页(2行为一页)写至标准输出;标准输出被 shell/内核重定向至“out.txt”。 3.5 selpg -s3 -e5 -l15 test.txt 2>error.txtselpg 将第 3 页到第 5 页(15行为一页)写至标准输出(屏幕);所有的错误消息被 shell/内核重定向至“error.txt”。请注意:在“2”和“>”之间不能有空格;这是 shell 语法的一部分 3.6 selpg -s3 -e5 -l15 test.txt >out.txt 2>error.txtselpg 将第 3 页到第 5 页(15行为一页)写至标准输出(标准输出被 shell/内核重定向至“out.txt”);所有的错误消息被 shell/内核重定向至“error.txt”。 4.参考资料Golang之使用Flag和Pflag 最后悄悄给上自己的github |
请发表评论