- 博客(40)
- 资源 (3)
- 收藏
- 关注
原创 SHELL脚本学习(十三)初识 gawk 编辑器
gawk提供了一种编程语言,而不仅仅是编辑器命令。定义变量保存数据使用算数和字符串运算符处理数据使用结构化编程概念 为数据处理添加处理逻辑提取文件中的数据并将其重新排列组合,最后生成格式化报告。
2024-06-28 22:59:10
368
原创 SHELL脚本学习(十二)sed进阶
sed 编辑器的基础命令都是对一行文本进行操作。如果要处理的数据分布在多行中,sed基础命令是没办法处理的。幸运的是,sed编辑器的设计人员已经考虑了这个问题的解决方案。sed编辑器提供了3个处理多行文本的特殊命令。命令描述N加入数据流的下一行,创建一个多行组进行处理D删除多行组中的一行P打印多行组中的一行。
2024-06-28 22:58:29
679
原创 SHELL脚本学习(十一)正则表达式
除了定义自己的字符组,BRE(basic regular expression 基础正则表达式)还提供了一些特殊字符组。在字符组前加上脱字符即为排除型字符组。排除型字符组的语义正好和字符组相反,不匹配字符组内的任一字符。用于定义字符组,字符组内的任一字符匹配,即为匹配。可以单连字符(-)表示区间。即 起始字符-结束字符。特殊字符组的使用方式和普通字符组一样。)能够匹配除换行符之外的所有字符。,表示该字符必须匹配0次或多次。美元符号($)指出行尾位置。
2024-06-21 19:40:58
1166
原创 SHELL脚本学习(十)初识 sed编辑器
默认情况下sed会将指定的命令应用于STDIN输入流中。因此,可以直接将数据通过管道传给sed编辑器进行处理。s:替换命令。会用第二个字符串(orange)替换第一个字符串(apple)。
2024-06-21 13:01:58
913
原创 SHELL脚本学习(九)函数
如果在脚本主体定义了一个全局变量,那么就可以在函数中读取它的值。类似的,在函数内部定义全局变量,在脚本主体也可以访问它的值。要解决这个问题,必须先将数组拆分成多个数组元素,然后将这些数组元素当作参数传递。该函数的退出状态码是2,因为函数最后一个命令执行失败了。正如将命令的输出保存到shell变量一样,也可以将函数的输出保存到shell变量中。默认情况下,函数的退出状态码是函数最后一个命令返回的状态码。语句按正确顺序输出数组的各个元素,然后脚本再将数组元素组装成新的数组。函数向脚本返回数组也采用相似的方法。
2024-06-13 23:15:58
770
原创 SHELL脚本学习(八)实战演练
2、输入数据3、shell脚本4、结果二、捕获脚本信号,并将脚本置于后台运行1、预期效果格式:在后台执行 command,并忽略信号signals
2024-06-13 15:43:19
188
原创 SHELL脚本学习(七) 脚本控制(2)
nice命令阻止普通用户提升命令的优先级,但是即便提高优先级的操作没有成功,也不影响命令的执行。cron在后台运行,并会检查一个特殊的表(cron时间表),从中获知需要执行的作业。如果指定的时间已经过去,at命令会在第二天的同一时间执行指定的作业。要想让任务以更低优先级运行,只需用nice命令的-n选项指定新的优先级。在linux系统中由shell启动的进程默认优先级是相同的。如果对于时间的精确性要求不高,则可以使用预配置的cron脚本目录。renice 命令可以修改系统中已运行的命令的优先级。
2024-06-13 12:07:35
721
原创 SHELL脚本学习(七) 脚本控制
shell将运行的各个进程称为作业,并为其分配在当前shell内唯一的作业号。有时候即便是退出了终端会话,也想在终端会话中启动shell脚本,让脚本一直以后台模式运行到结束。由于nohup命令会解除终端和进程的关联,因此不再同STDOUT和STDERR绑定在一起。要想在脚本中的不同位置进行不同的信号捕获处理,只需重新使用带有新选项的trap命令即可。想要移除信号,在trap命令与希望恢复默认行为的信号列表之间加上连字符(–)即可。除了在shell脚本中捕获信号,也可以在shell脚本退出时捕获信号。
2024-06-12 22:49:09
1048
原创 SHELL脚本学习(一)
输出所有数据 echo ${my_array[*]}shell脚本第一行:说明使用的是哪个shell。管道负责将一个命令的输入传送到另一个命令的输入。`` 和 $() 将命令的返回值复制给变量。要将数学运算赋值给变量,可以使用$和[];查看bash的路径:which bash。如果不想覆盖文件的内容可以使用“"负责将文件的内容重定向到命令。浮点数运算可以使用bc命令。
2024-05-31 12:59:37
373
原创 记录几个常用的命令
12、grep [option] 匹配模式 [file] : 查询包含匹配模式的行(支持正则表达)1、创建由file1和file2组成的压缩包,生成的文件名为file.tar。11、sort 文件名 : 排序指定文件中的数据,默认按字符串比较。4、mv: 将文件和目录移动到另外一个位置,或重命名。-i : 如果目标文件已存在,询问是否覆盖。2、列出file.tar中包含的文件。-e: 匹配模式: 多个匹配模式。3、提取file.tar中的文件。计算文件的行数,单词数,字节数。
2024-05-31 12:57:35
177
原创 LINUX下IO复用——EPOLL
与select 和 poll相比 epoll只返回触发事件的fd,不再需要检查所有监听的文件描述符。//timeout:指定以毫秒为单位的最大等待时间(-1 == infinite)//epoll_create()返回的文件描述符应该用close()关闭。//函数正确:返回出发事件的个数,并将事件复制到events中。//错误 :返回-1并将errno变量设置为特定错误代码。//创建epoll实例。//maxevents:events的最大容量。//等待epoll实例epfd上的事件。
2024-05-15 00:31:30
162
原创 LINUX下IO复用——POLL
fds : pollfd结构数组nfds :fds中的元素个数timeout :超时时间,单位毫秒。-1 表示一直等待,直到有监听的事件发生。
2024-05-10 17:38:02
177
原创 程序员的自我修养第二章
语法分析器 产生的语法树是以表达式为节点的树,符号和数字是最小的表达式,通常作为语法树的叶子节点。经过语义分析阶段后,整个语法树的表达式都被标记了类型,如果某些类型涉及到隐式转换,语义分析程序会在语法树中插入相应的节点。编译器多能分析的语义是静态语义,即在编译器可以确定的语义,与之对应的是动态语义,即在运行期才能确定的语义。将中间代码翻译成机器代码,这个过程十分依赖目标机器,因为不同的机器有着不同的字长、寄存器、整数类型 和 浮点数类型。扫描器的任务很简单,只是进行简单的词法分析。
2023-08-01 18:36:30
56
原创 Unicode 转 UTF-8
UTF=8转换表1) 0 ~ 7f 0xxxx xxxx2) 80 ~ 7ff 110x xxxx 10xx xxxx3) 800 ~ ffff 1110 xxxx 10xx xxxx 10xx xxxx4) 1 0000 ~ 1f ffff 1111 0xxx 10xx xxxx ...
2021-02-05 16:23:50
112
原创 字典和集合
1.字典推导:ll = [('Zhangsan',180),('Lisi',175),('xz',160)]dd = {name:height for name,height in ll}print(dd)>>{'Zhangsan': 180, 'Lisi': 175, 'xz': 160}2.如何处理查找不到的键1).setdefault例1:ll = [('Zhangsan',180),('Lisi',175),('xz',160)]dl = {}for k
2021-02-05 13:59:51
64
原创 流畅的python第二章 --列表
容器序列:list、tuple和collections.deque这些序列能存放不同类型的数据。扁平序列:str、bytes、bytearray、memoryview和array.array,这类序列只能容纳一种类型。容器序列:存放的是他们所包含的任意类型的引用扁平序列: 存放的是值,而不是引用。扁平序列是一块连续的空间,因此扁平序列更加紧凑。 序列类型也可以按照能否被修改分类 可变序列list、bytearray、array.array、collections.deque和m
2021-02-04 13:44:12
95
原创 判断链表是否有环
快慢指针法:慢指针一次走一下,快指针一次走两下 bool hasCycle(ListNode *head) { if (nullptr == head) return false; ListNode *pOne = head; ListNode *pTwo = head; while(nullptr != pOne && nullptr != pTwo) { pTwo = pTwo->next; if (nullptr ==
2020-10-09 15:13:16
50
原创 有依赖关系的背包问题
题目描述王强今天很开心,公司发给N元的年终奖。王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2个附件。附件...
2020-04-19 00:38:37
353
原创 ~~红黑树
旋转个颜色变换规则:所有插入的点默认为红色1.变颜色的情况:当前节点的父亲是红色,且它的父节点的另一个节点也是红色(叔叔节点):1)把父节点设为黑色2)把叔叔节点设为黑色3)把祖父节点(父节点的父节点)设为红色4)把指针定义到祖父节点,将祖父节点设为当前要分析的点。2.左旋:当父节点为红色,叔叔节点为黑色的时候。,且当前的节点是右子树。以父节点为基点左旋将指针定义到当前节点的左节点...
2020-03-17 18:29:38
153
1
原创 win32汇编创建窗口
.386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&...
2020-02-09 21:27:53
296
原创 汇编语言(第三版)第八章 实验7
这个实验几乎是前面所有学习内容的总结。刚开始做的时候以为全对了,用debug跑了一下,发现全是错误,调了半个小时才编译通过。编译过后又发现结果不对,又用debug跟了1小时,终于正确了。assume cs:codesg, ds:data,es:tabledata segment db '1975','1976','1977','1978','1979','1980','1981','...
2019-07-20 18:17:44
300
原创 归并排序-看源码就够了
#include<iostream>#include<vector>using namespace std;void Merge(int *a, int nLeft, int nMid, int nRight){ int nL = nLeft; int nM = nMid + 1; int nR = nRight; int i = 0; vector&l...
2019-03-05 09:54:28
182
原创 MFC CtreeCtrl内部排序接口SortChildrenCB
函数原型:BOOL CTreeCtrl::SortChildrenCB(_In_ LPTVSORTCB pSort)LPVSORTCB结构:typedef struct tagTVSORTCB{ HTREEITEM hParent; PFNTVCOMPARE lpfnCompare; LPARAM lParam;} TVSOR...
2018-07-31 23:13:04
980
原创 ListCtrl内部排序接口SortItems()
函数原型BOOL SortItems(PFNLVCOMPARE pfnCompare,DWORD_PTR dwData);PFNLVCOMPARE 是一个函数指针类型PFNLVCOMPARE 原型int CALLBACK (*pFun)(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);lParam1 , lParam表示比较的Item, ...
2018-07-20 22:50:32
796
原创 Win32创建窗口
#include<windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ TCHAR szAppName[] = L"...
2018-06-10 10:24:04
1270
原创 子集和问题
#include<iostream>#include<vector>#include<algorithm>using namespace std;//集合nSrcArr 是否存在一个子集的和 等于 nDesbool IsExist(const vector<int> &nSrcArr, int nDes){ vector<bool...
2018-05-24 22:13:06
397
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人