项目需求
使用 golang 开发 开发 Linux 命令行实用程序 中的 selpg
传送门:https://github.com/kotomineshiki/CLI
selpg功能
selpg是一个自定义的命令行程序,功能是从源文件中读取内容到目标文件,将包含几种模式。
说明:-s表示读入的起始位置,-e表示结束打印的页码。每一条命令必须有这两个参数。
1.
selpg -s1 -e1 [filename]
这个模式是从filename代表的文件中读取内容输出在显示屏上
2.
selpg -s1 -e1 <[filename]
显示第一页的内容
3.
selpg -s1 -e1 [filename1]>[filename2]
把第一个文件内的字符串写入到第二个文件中
4.
selpg -s1 -e1 [filename1] 2>[filename2]
如果写入信息有错误,则把错误信息写入第二个文件中
5.
other_command | selpg
other_cammand 的输出被作为selpg的输入
pflag包
这是本次作业主要调用的api,安装方法如下
go get github.com/spf13/pflag
然后输入
go test github.com/spf13/pflag
看到ok后就算安装完成了
pflag 包的作用是解析输入的命令
程序设计
结构体
type Args struct {
s int
e int
l int
f bool//按照分页符\f分页的标识符
d string//传输目的地
inputFile string//打开文件
}
获取命令行字符串并分割成各个参数
func getArgs(args *Args) {
//读取
flag.IntVarP(&args.s, "start", "s", 0, "start")//-s
flag