# selpg
具体要求与说明:[ 开发 Linux 命令行实用程序 ](https://www.ibm.com/developerworks/cn/linux/shell/clutil/index.html)
# 说明
## 1. 命令格式
```java
selpg [-s startPage] [-e endPage] [-l linePerPage | -f] [-d dest] input_file >output_file 2>error_file
```
## 2. 参数
`-s`:startPage,后面接开始读取的页号
`-e`:endPage,后面接结束读取的页号
`-l`:后面跟行数,代表多少行分为一页
`-f`:该标志无参数,代表按照分页符’\f’ 分页,一般默认72行为一页
`-d`:“-dDestination”选项将选定的页直接发送至打印机,“Destination”应该是 lp 命令“-d”选项可接受的打印目的地名称
` input_file`,`output_file 2`,`error_file`:输入文件、输出文件、错误信息文件的名字
(-s和-e是必须的参数,其它为可选参数,-l和-f参数不可能同时出现)
# 设计
1. 导入所需包
```java
package main
import (
"fmt"
"flag"
"os"
"io"
"bufio"
"os/exec"
)
```
2. 定义结构体
```java
type selpg_args struct
{
start_page int
end_page int
in_filename string
page_len int
page_type bool
print_dest string
}
```
3. main函数
```java
func main(){
var args selpg_args
get(&args)
process_args(&args)
process_input(&args)
}
```
4. 实现各个函数的功能
```java
get(&args) //初始化,定义结构体各个变量的值
process_args(&args) //检查输入的命令是否合理有效
process_input(&args) //处理输入的命令
```
# 运行使用
使用以下命令
```java
go install github.com/github-user/selpg
selpg [-s startPage] [-e endPage] [-l linePerPage | -f] [-d dest] input_file >output_file 2>error_file
```
# 测试结果
按文档 **使用 selpg** 章节要求测试你的程序
input.txt里面是1到100行的内容分别为1到100的输入文件
1. `$ selpg -s1 -e1 input_file`
![在这里插入图片描述](/picture/1-1.PNG)
一直到72
![在这里插入图片描述](/picture/1-3.PNG)
2. `$ selpg -s1 -e1 < input_file`
![在这里插入图片描述](/picture/2.PNG)
也是输出直到72,**后面的图片结果省略22到72的图片**
3. `$ other_command | selpg -s10 -e20`
![在这里插入图片描述](/picture/3.PNG)
4. `$ selpg -s10 -e20 input_file >output_file`
![在这里插入图片描述](/picture/4-1.PNG)
![在这里插入图片描述](/picture/4-2.PNG)
5. `$ selpg -s10 -e20 input_file 2>error_file`
![在这里插入图片描述](/picture/5-1.PNG)
![在这里插入图片描述](/picture/5-2.PNG)
6. `$ selpg -s10 -e20 input_file >output_file` 2>error_file
![在这里插入图片描述](/picture/6.PNG)
7. `$ selpg -s10 -e20 input_file >output_file` 2>/dev/null
![在这里插入图片描述](/picture/7.PNG)
8. `$ selpg -s10 -e20 input_file >/dev/null`
![在这里插入图片描述](/picture/8.PNG)
9. `$ selpg -s10 -e20 input_file | other_command`
![在这里插入图片描述](/picture/9.PNG)
10. `$ selpg -s10 -e20 input_file 2>error_file | other_command`
![在这里插入图片描述](/picture/10.PNG)
---
1. `$ selpg -s10 -e20 -l66 input_file`
![在这里插入图片描述](/picture/21.PNG)
2. `$ selpg -s10 -e20 -f input_file`
![在这里插入图片描述](/picture/22.PNG)
3. `$ selpg -s10 -e20 -dlp1 input_file`
![在这里插入图片描述](/picture/23.PNG)
4. `$ selpg -s10 -e20 input_file > output_file 2>error_file &`
![在这里插入图片描述](/picture/24.PNG)
使用 golang 开发 开发 Linux 命令行实用程序 中的 selpg.zip
版权申诉
130 浏览量
2024-02-11
11:59:02
上传
评论
收藏 105KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/d5b8e16cddf148da83293d5bb68d9224_admin_maxin.jpg!1)
博士僧小星
- 粉丝: 1946
- 资源: 5903
最新资源
- HC32F460智能台灯上位机
- HC32F460智能台灯 立创EDA专业版工程
- 基于Matlab的2Q-FSK移频键控通信系统仿真
- 基于Node.js+MySQL开发的开源微信小程序商城
- 基于Python实现GNU Radio上的OFDM通信系统仿真及实测
- CnWizards delphi插件 变量高亮 delphi工具
- 用K210进行垃圾识别,通过串口发送不同信号给stm32,控制步进电机进行分类,并且语音播报.zip
- 基于Matlab 实现单径瑞利信道下,交织与卷积编码对误码率影响仿真
- [金融、财务数据] Wrds RepRisk (RRI指标)数据集RepRisk
- 基于PCL的平面点云格网可视化程序代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)