- 博客(18)
- 收藏
- 关注
原创 21. sed进阶
它只打印多行模式空间中的第一行,这包括模式空间中直到换行符为止的所有字符。模式空间(pattern space)是一块活跃的缓冲区,在sed编辑器执行命令时它会保存待检查的文本。,例如echo打印一段话,然后使用sed -n指令,用:start声明start的地址,然后使用。根据替换命令的结果跳转到某个标签,如果替换命令没能匹配指定的模式,测试命令不会跳转。从含有字符的开始到数据流结束,这个区间内的任何行都不会从输出中删除,值得注意的是。但是上面的代码对最后一行也添加了空行,可以实现对最后一行的修正。
2023-06-05 20:44:57
116
原创 20 正则表达式
20.1.1 定义使用模式字符串匹配文本,如果不匹配就被过滤。匹配任意多个字符。20.1.2 正则表达式的类型不同的工具使用不同的正则表达式引擎:1.POSIX基础正则表达式(basic regular expression,BRE)引擎2.POSIX扩展正则表达式(extended regular expression,ERE)引擎20.2.1 纯文本直接找到含有test的语句打印出来正则表达式严格区分大小写,例如由于是大写所以怎么都不能匹配20.2.2 特殊字符.*[]^${}\+?
2023-05-16 13:08:20
204
原创 19. 初识sed和gawk
如果不想用分号,也可以用bash shell中的次提示符来分隔命令。只要输入第一个单引号标示出sed程序脚本的起始(sed编辑器命令列表),bash会继续提示你输入更多命令,直到输入了标示结束的单引号。默认情况下,在sed编辑器中使用的命令会作用于文本数据的所有行。可以写脚本来读取文本行的数据,然后处理并显示数据,创建任何类型的输出报告。转换命令是一个全局命令,也就是说,它会文本行中找到的所有指定字符自动进行转换,而不会考虑它们出现的位置。替换标记会输出修改过的行,结合一下就会输出被替换命令修改的行,
2023-05-11 23:30:13
334
原创 Pytest测试框架
pytest . mark . parametrize(argnames , argvalues) argnames : 要参数化的变量,string(逗号分割) , list , tuple(不同的数据结构拥有的方法不同) argvalues : 参数化的值, list , list [ tuple ] ,如果传入的是字典,只会传递key值1.代码中直接输入测试用例2.使用yaml首先编写data.yml文件在代码中导入数据。
2023-05-10 15:41:30
245
原创 18 图形化桌面环境中的脚本编程
yesno部件进一步扩展了msgbox部件的功能,允许用户对窗口中显示的问题选择yes或no。它会在窗口底部生成两个按钮:一个是Yes,一个是No。第一个参数定义为菜单的标题,第二、三个参数定义了菜单窗口的高和宽,第四个参数表示一次显示的菜单项总数。桩函数是一个空函数,或者只有一个echo语句,说明最终这里里需要什么内容。它会生成一个滚动窗口来显示由参数所指定的文件中的文本。如果想在窗口顶部放一个标题,也可以用–title参数,后接作为标题的文本。中所采用的选项惯例,因此,将已有的交互式脚本迁移到。
2023-05-08 23:28:39
92
原创 Unittest测试框架
是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。
2023-05-08 10:04:02
144
原创 17创建函数
一旦在shell中定义了函数,你就可以在整个系统中使用它了,无需担心脚本是不是在PATH环境变量里。要让函数在多个脚本中都可以使用,最好创建函数库文件,在多个脚本中引用,就是常见编程语言中的头文件。当在命令行上定义函数时,你必须记得在每个命令后面加个分号,这样shell就能知道在哪里是命令的起止了。跟一般的编程语言一样,数组名代表数组首地址,首地址对应的元素是数组中第一个元素。可以得到函数的返回值,执行成功默认返回0,执行失败默认返回1。下次启动shell时,库中的所有函数都可在命令行界面下使用了。
2023-05-06 23:09:02
43
原创 16. 控制脚本
每次启动一个新的shell的时候,bash shell都会运行.bashrc文件,因此可以将shell启动时需要执行的脚本放在.bashrc文件中实现。如果每次运行脚本的时候都能够启动一个新的bash shell(即便只是某个用户启动了一个bash shell),将会非常的方便。(在我的ubuntu系统下,如果不输入新的指令,会一直等待不会自动显示结束消息,暂时没有搞清楚原因,之后补充)有时你会想在终端会话中启动shell脚本,然后让脚本一直以后台模式运行到结束,即使你退出了终端会话。
2023-05-04 19:22:54
59
原创 15 阅读笔记呈现数据
为了解决这个问题,可以将STDERR重定向到null文件,null文件在linux的标准位置为/dev/null。如果你创建了新的输入或输出文件描述符,shell会在脚本退出时自动关闭它们。可以将echo语句的输出发给STDERR,一旦重定向了STDOUT或STDERR,就很难再将它们重定向回原来的位置。同时由于/dev/null文件不含有任何内容,程序员通常用它来快速清除现有文件中的数据,而不用先删除文件再重新创建。在脚本中将错误信息重定向到STDERR,然后在运行的时候将STDERR重定向到某个文件。
2023-05-02 11:18:49
47
原创 14 linux处理用户输入shell脚本
有效的选项字母都会列在optstring中,如果选项字母要求有个参数值,就加一个冒号。如果一个脚本既要使用参数又要使用选项,这个时候需要一个特殊的参数帮助辨识哪些是参数哪些是选项,这里使用"–"来分离。传递的是完整的脚本路径,使用basename得到不包含路径的脚本名,从而根据不同的脚本名实现不同的功能。在你不知道到底有多少个参数的时候,你可以使用shift将之后变量的值转移到之前,如。上述的命令只能处理单个选项,对于复合选项毫无能力,因此介绍下面的getopt命令。
2023-04-29 18:11:58
351
原创 笔记04深入浅出索引
也就是说,对于一个100万行的表,如果使用二叉树来存储,单独访问一个行可能需要20个10 ms的时间,查询慢。如果语句是select *fromTwhere k=5,即普通索引查询方式,则需要先搜索k索引树,得到ID的值为500,再到ID索引树搜索一次。图中四个ID_card_n的值并不是递增的,这样做的好处是增加新的User时速度会很快,只需要往后追加。而更糟的情况是,如果R5所在的数据页已经满了,根据B+树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。非主键索引的叶子节点内容是主键的值。
2023-04-27 14:58:57
43
原创 Vscode学习XML约束和解析
根据document获取所有的student对应的Elements对象,选择其中的某个element对象,使用方法得到对应的name属性或者age属性等。3.引入xsd文件命名空间. xsi:schemaLocation=“xsd对应的别名 xsd文件路径” ,一般这个别名已经在约束文件中写好了的。Element:元素对象,方法与Document对象完全一致,区别是获取的是子元素对象。XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享。操作xml文档,将文档中的数据读取到内存中。
2023-04-27 09:54:16
1697
原创 vscode使用BootStrap及响应式布局
xs:超小屏幕 手机 (<768px),sm:小屏幕 平板 (≥768px),md:中等屏幕 桌面显示器 (≥992px),lg:大屏幕 大桌面显示器 (≥1200px)在新建的html文件中输入b3-template回车并修改jquery.min.js,bootstrap.min.js和bootstrap.min.css三个路径即可。同一套页面可以兼容不同分辨率的设备。指定该元素在不同的设备上,所占的格子数目。一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。
2023-04-26 16:14:07
1666
1
原创 vscode中JAVA使用JDBC实现MySQL预编译执行与事务处理
参数是 true 或 false如果设置为 false,表示关闭自动提交,相当于开启事务提交事务回滚事务。
2023-04-25 22:05:08
627
原创 Java使用JDBC1
注册和加载驱动(可以省略) -> 获取连接 -> Connection 获取 -> Statement 对象 -> 使用 Statement 对象执行 SQL 语句 -> 返回结果集 -> 释放资源。数据库的驱动: 由各大数据库厂商提供,需要额外去下载,是对 JDBC 接口实现的类。javax.sql : 数据库扩展包,提供数据库额外的功能。作用:封装数据库查询的结果集,对结果集进行遍历,取出每一条记录。很明显,上述的代码太过冗余,我们需要将对应的代码抽象出来。JDBC访问数据库的步骤。
2023-04-25 21:20:38
335
1
原创 vscode使用JDBC实现java访问数据库相关配置
不同版本的mysql-connector-java驱动包的Driver类所在的位置不同,在5.x版本中Driver类在com.mysql.jdbc包路径下,到了6.x以上版本中Driver类在com.mysql.cj.jdbc包路径下。修改为Class.forName(“com.mysql.jdbc.Driver”);这个可能存在很多的原因,最有可能的是端口占用。我使用的是5.x版本,因此将原代码中。
2023-04-25 10:54:12
3578
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人