首页
学习
活动
专区
圈层
工具
发布

Shell实用工具

sed是一种流编辑器,它一次处理一行内容, 将这行放入缓存(存区空间称为:模式空间),然后才对这行进行处理,处理完后,将缓存区的内容发送到终端。 sed处理数据原理 ?...演示5: 将每行中第二个匹配替换 将每行中第二个匹配的itheima替换为hello 命令 sed 's/itheima/hello/2' sex.txt ?...演示4: 将前3行数据复制粘贴到最后一行 将前3行数据复制到暂存空间(追加方式), 之后将暂存空间的所有内容复制粘贴到模式空间最后一行(追加方式) sed '1,3H;$G' sed.txt ?...示例2: 数字升序去重 先按照“ ”空格分割后的, 然后,按照第2列数字升序排序, 最后对所有列去重 sort -t " " -k2n,2 -uk1,2 sort.txt ?...示例4: 数字降序去重 先按照“ ”空格分割后的, 然后,按照第2列数字降序排序, 最后对所有列去重 sort -t " " -k2nr,2 -uk1,2 sort.txt 运行效果 ?

10.2K10

CAD出图比例

打印比例:即我们将电脑上的长42000×宽29700的一个图框包括里面的图打印在一张420mm×297mm的A3号图纸上,那我们说我们的打印比例是1:100。...然后将这个图框包括里面的图(42000×59400)打印在420mm×594mm的A2图纸上,这样这张图的比例就是1:100的。...将图框再放大或将图缩小的做法将会破坏1:100的比例。 关于第二个问题。...我们不用管图纸比例,如果你将放大100倍的A2标准图框打印在A2纸上,文字高度就设成100倍;如果你将放大10倍的A2标准图框打印在A2纸上,文字高度就设成10倍,如果你将放大2倍的A2标准图框打印在A2...这样就可以永远保证打印出来的文字高度是3,而标注的时候标出的尺寸就是实际尺寸。这就在于A全局比例和B测量比例的设置。(注意B测量比例是你将图放大的倍数的倒数)。

3.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python用户输入与While循环

    Python提供了一个内置函数 input(),它可以让程序暂停运行,等待用户输入一些文本。当用户按下回车键后,程序将继续执行,并且 input()函数会将用户输入的内容作为字符串返回。...举个例子:lua 代码解读复制代码user_input = input("请输入一些文字:")print("你输入的是:" + user_input)​在这个例子中,程序会打印出"请输入一些文字:",然后等待用户输入...用户输入的任何内容都会被存储在 user_input变量中,然后我们可以将其打印出来。接下来,我们来看看while循环。while循环是一种控制流语句,它允许代码被重复执行,直到满足特定的条件。...现在,我们来看看如何将用户输入与while循环结合起来。假设我们想要创建一个程序,让用户输入一系列数字,然后计算它们的总和。...否则,我们就将用户输入的数字加到 total上。最后,我们打印出总和。总的来说,用户输入与while循环的结合使用可以帮助我们创建出一些强大的、交互式的Python程序。

    71810

    排序算法之希尔、归并、堆和基数排序

    写代码之前,我们要解决一个问题:如何将一个不是堆的完全二叉树调整为堆。...堆建好之后开始排序,堆顶就是最小值,取出放入数组中的最后一个位置,将堆底(数组中的最后一个元素)放入堆顶。这一操作会破坏堆,需要将前n-1个元素调整成堆。...然后再取出堆顶,放入数组的倒数第二个位置,堆底(数组中的倒数第二个元素)放入堆顶,再将前n-2个元素调整成堆。 按照上面的思路循环操作,最终就会将数组中的元素按降序的顺序排列完毕。...,调整以它为根的子树 adjustHeap(biggerIndex,lastIndex); } } /** * 将数组按照完全二叉树的形式打印出来...然后,对A[1..n]从头到尾扫描一遍,把每个A放入对应的桶B[j]中。 再对这100个桶中每个桶里的数字排序,这时可用冒泡,选择,乃至快排,一般来说任 何排序法都可以。

    87110

    JavaScript Event Loop

    宏任务执行完毕后开始看有没有要执行的微任务,发现微任务队列中有一个微任务,开始执行 then 函数(于是打印出了数字 2)。...微任务执行完毕,页面也不需要渲染,于是接着执行下一个宏任务(打印出了数字 3)。 嵌套式 Promise 考虑下面的代码,打印顺序是怎样的?...事实上,计时器函数确实会先进先出,出来之后会进入执行栈,但 setTimeout 函数并没有在执行栈中一直等待时间,而是会进入 Web Apis 执行环境中(创建出子线程,用于处理这些任务),当时间计时完毕...然后将 await 之后的代码放入微任务中。全局代码执行完毕,开始执行微任务,于是在最后打印出了 end。 async、Promise 混合 考虑下面的代码,打印顺序是怎样的?...然后开始宏任务的六个阶段,每个阶段都将该宏任务中的所有任务都取出来执行(注意是所有的!

    2K20

    35.python 线程队列Queue-FIFO

    举个形象的例子:如果把123456这6个数字,依次放入队列queue中,那么我们重队列中取数据的时候,取到的第一个数据必然是1,第二个数据必然是2,依次类推,这就是所谓的吃什么拉什么 — FIFO(先进先出...Queue.task_done()  从场景上来说,处理完一个get出来的item之后,调用task_done将向队列发出一个信号,表示本任务已经完成(与Queue.get配对使用)。...Queue.put(…[,block[,timeout]])  向队尾插入一个item,同样若block=True的话队列满时就阻塞等待有空位出来再put,block=False时引发异常。...当调用了join之后,主线程就不会因为队列空了而擅自结束,而是等待最后那个线程处理完成了。 四.先进先出队列Queue使用: # !...%d存入队列成功" % i)     q.join()  # 阻塞进程,直到所有任务完成,取多少次数据task_done多少次才行,否则最后的ok无法打印     print('ok')     def

    1.4K20

    不要再问怎么把项目从 GitHub 搬到码云了!

    壹 项目名要求: 只允许字母、数字或者下划线(_)、中划线(-)、英文句号(.),必须以字母开头。 不符合项目名要求会导致无法导入。 贰 如何将 GitHub 上的公有项目快速搬到码云上?...然后点击你需要“导入”的仓库,然后耐心等待几秒钟,项目导入完成。 叁 如何将 GitHub 上的私有有项目搬到码云上? 首先,打开 GitHub ,找到要迁移的代码仓库地址,如下: ?...点击Copy toclipboard(复制到粘贴板) 打开 https://desktop.github.com/,下载 GitHub 工具 GitHub Desktop,安装; ?...将之前粘贴板的内容复制到 URL 处,并选择本地的一个存放位置,点击 Clone。 ? 可在所选本地文件夹处发现克隆到本地的代码仓库: ?...然后使用命令 git push –u origin 分支名 推送分支代码。 ? 最后,在码云界面上验证上传结果。 ?

    12.5K61

    计算机初级选手的成长历程——三子棋详解

    : 那下面问题来了,如果只是这样打印我们如何将棋子的信息给输入进去呢?...考虑到这个问题,我们接下来是不是要先解决棋子信息的存储问题啊,没错,如果现在棋子信息都没有的话,我们棋盘及时打印出来了也无法将棋子放入棋盘,下面我们来看看这个棋子信息该如何解决; (2)生成棋子 棋盘信息的存放...我们有几种方式可供选择——1.一将内容行一行的打印出来,2.将内容按行和列的方式打印出来。...下面我们先来探讨第一种打印方式; 1.一将内容行一行的打印出来 我们要将内容一行一行打印出来需要打印哪些东西呢?...下面我们来看一下打印效果: 我们可以看到,此时棋盘很好的打印了出来,下面我们来将行和列改为5,再来看一下打印效果: 棋盘此时也按我们的要求很好地打印了出来; 这里我之所以将引用头文件这里圈出来是因为

    1.3K20

    闭嘴,别再问什么是Java锁了

    再来看看每个线程具体的执行过程,新建用户实例,传入的是用户使用的柜子,我们这里只有一个柜子,所以传入这个柜子的实例,然后传入这个用户所需要存储的数字,分别是1,2,3,也分别对应了用户1,2,3。...再调用使用柜子的操作,也就是向柜子中放入要存储的数字,然后立刻从柜子中取出数字,并打印出来。 我们运行一下main函数,看看得到的打印结果是什么?...我们可以将详细执行步骤进行一下拆分。 从内存中取出i的值 将i的值+1 将计算完毕的i重新放入到内存中 其实这个流程和我们之前说到的数据的流程是一样的。只不过是介质不同,一个是内存,另一个是数据库。...在多个线程的情况下,我们想象一下,假如A线程和B线程同时同内存中取出i的值,假如i的值都是50,然后两个线程都同时进行了+1的操作,然后在放入到内存中,这时候内存的值是51,但是我们期待的是52。...再看看第二个构造方法,需要传入一个参数,true的时候是公平锁,false的时候是非公平锁。

    59430

    手把手教你再idea里面如何接入 DeepSeek?

    接下来,我就为大家详细介绍如何将 DeepSeek 集成到 IDEA 中。...选中Marketplace后,在输入框输入 codeGpt 选择 CodeGpt 最右侧会显示详细信息,点击 安装 按钮后等待知行安装,最后点击确认。安装插件会重新启动IDEA,重新启动即可。...这里有三部分需要配置,第一个是选择模版,输入API KEY;第二个是配置聊天模型;第三个是配置推理模型。...第二个是对话模型,这里需要配置两处: 在URL处粘贴URL:https://api.deepseek.com/chat/completions 将请求的模型修改为:deepseek-chat 第三个是推理模型...在URL处粘贴URL:https://api.deepseek.com/chat/completions 将请求的模型修改为:deepseek-reasoner 通过上述步骤,即可配置完成,配置完成后,

    8.1K10

    插件集成|如何在IDEA中使用DeepSeek

    接下来,我就为大家详细介绍如何将 DeepSeek 集成到 IDEA 中。...选中Marketplace后,在输入框输入 codeGpt 选择 CodeGpt 最右侧会显示详细信息,点击 安装 按钮后等待知行安装,最后点击确认。安装插件会重新启动IDEA,重新启动即可。...这里有三部分需要配置,第一个是选择模版,输入API KEY;第二个是配置聊天模型;第三个是配置推理模型。...第二个是对话模型,这里需要配置两处,1 在URL处粘贴URL:https://api.deepseek.com/chat/completions2 将请求的模型修改为:deepseek-chat第三个是推理模型...3 在URL处粘贴URL:https://api.deepseek.com/chat/completions4 将请求的模型修改为:deepseek-reasoner通过上述步骤,即可配置完成,配置完成后

    31K1311

    Linux进程控制

    这个之前用过: 然后来看看里面数字对应的错误信息 注意:如果程序异常退出码也无意义。 常见的退出方式 上面说了在mian函数中调用return就是进程退出。...还有一个系统级别调用的是_exit,作用几乎相同: 系统调用的并没有打印。 这是C语言提供的,过了两秒钟就打印出来了。 这说明: exit 终止进程后会主动刷新缓冲区。...进程等待 什么是进程等待,为什么要进程等待 之前说过僵尸进程会导致内存泄漏,因为他的资源无法回收,所以就需要等待子进程结束然后来保存资源给父进程,通过获取子进程退出信息知道是否成功退出。...这几个函数统一的是exec,这个函数最后一个l 意思是 list 将参数一个一个传入exec* 这里执行完execl之后,后边打印process就不会执行,因为整个程序的代码和数据已经被覆盖掉了...的第一个参数不用去指定路径了,他会在环境变量PATH,进行可执行程序的查找 int execv(const char *path, const char *argv[], …); v是vector的意思,第二个参数是让我们把所有可执行参数放入数组中传过去

    3.5K00

    使用 sed 命令进行复制、剪切和粘贴

    当命令执行完时,sed 将模式空间中的内容打印到输出流,默认是 标准输出,但是可以将输出重定向到文件,甚至使用 --in-place=.bak 选项重定向到同一文件。...你可以将保留空间当作剪贴板,实际上,这正是本文所演示的内容:如何使用 sed 复制/剪切和粘贴。...从保留空间复制数据 要了解保留空间,你可以从保留空间复制内容,然后使用 g 命令将其放入模式空间,观察会发生什么: $ sed -n -e '/three/h' -e 'g;p' example.txtLine...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后在文档中粘贴一行。...最后一个脚本找到包含字符串 two 的行,并将保留空间的内容_追加_到模式空间,然后打印模式空间。 任务完成。 使用 sed 编写脚本 再说一次,使用单独的脚本语句纯粹是为了视觉和心理上的简单。

    2.9K20

    学习使用Lock+Conditionk编写三个经典多线程例子

    第二个是提供了wait不可打断的方法。...例子二(模拟生产者消费者) 功能点分析: 这里面有2个线程,一个生产者一个消费者,这里假设队列大小是10,如果队列满了,生产者就要等待消费者消费,如果队列空了,那么消费者就要等待生产,这里面也可以控制生产和消费的速度...: 生产者放入一条数据:87 生产者放入一条数据:51 生产者放入一条数据:86 生产者放入一条数据:94 生产者放入一条数据:71 生产者放入一条数据:8 生产者放入一条数据:10 生产者放入一条数据...:94 消费者消费一条数据:71 例子三(两个线程交替打印奇数和偶数) 功能点分析: 这里面需要一个数字累加器,如果+1后是奇数那么奇数就应该打印数据,同时偶数线程阻塞,当奇数打印完毕后,要+1更新奇数器...,同时唤醒偶数线程,偶数的逻辑与奇数线程类似,如果是偶数就打印,否则就进入等待状态,同时+1更新计数器,然后唤醒奇数线程。

    48320

    手把手教你半个小时用python语言编程出你的第一个程序

    实现设计 将设计翻译成计算机语言并放入计算机。在本书中,我们将算法实现为Python程序。 测试/调试程序 试用你的程序,看看它是否按预期工作。...计算机科学家将文本数据称为“字符串”。你可以将字符串视为可打印字符的序列。Python中通过将字符括在引号("")中来表示字符串字面量。...有时,将变量看作计算机内存中的一种命名的存储位置是有帮助的,我们可以在其中放入一个值。当变量更改时,旧值将被删除,并写入一个新值。图1展示了用这个模型来描绘x = x + 1的效果。...效果就像将粘贴便签从一个对象移动到另一个对象一样。这是赋值在Python中实际工作的方式,所以你会看到这样一些粘贴便签样式的图片散布在本书中。...在第一个例子中,列表包含4个值,即0至3,并且简单地打印了这些连续的i值。在第二个例子中,odd取前5个奇数的值,循环体打印了这些数字的平方。

    2.5K50

    【颠覆性联动】DeepSeek×IDEA重构编程边界!实测编码效率飙升300%↑

    接下来,我就为大家详细介绍如何将 DeepSeek 集成到 IDEA 中。...选中Marketplace后,在输入框输入 codeGpt 选择 CodeGpt 最右侧会显示详细信息,点击 安装 按钮后等待知行安装,最后点击确认。安装插件会重新启动IDEA,重新启动即可。...这里有三部分需要配置,第一个是选择模版,输入API KEY;第二个是配置聊天模型;第三个是配置推理模型。...第二个是对话模型,这里需要配置两处, ● 1 在URL处粘贴URL:https://api.deepseek.com/chat/completions ● 2 将请求的模型修改为:deepseek-chat...● 3 在URL处粘贴URL:https://api.deepseek.com/chat/completions ● 4 将请求的模型修改为:deepseek-reasoner 通过上述步骤,即可配置完成

    1.4K00

    什么是锁🔒

    然后我们将3个用户抽象成一个类: public class User { //柜子 private Cabinet cabinet; //存储的数字 private int...然后我们新建一个线程池,线程池中有3个线程,每个线程执行一个用户的操作。...再来看看每个线程具体的执行过程,新建用户实例,传入的是用户使用的柜子,我们这里只有一个柜子,所以传入这个柜子的实例,然后传入这个用户要存储的数字,分别是1,2,3,也分别对应着用户A,用户B,和用户C。...再调用使用柜子的操作,也就是向柜子中放入要存储的数字,然后立刻从柜子中取出数字,并打印出来。 我们运行一下main函数,看看打印的结果是什么?...赋值语句执行完成后,进入到打印语句,打印语句取storeNumber的值并打印,这时storeNumber存储的是最后一个线程所设置的值,3个线程取到的值是相同的,就像上面打印的结果一样。

    2.5K20

    一篇帮你彻底弄懂NodeJs中的Buffer

    但是,我们日常工作的数据类型不仅仅是数字。我们还有字符、图片甚至视频。计算机是知道如何将这些表示为二进制的。就拿字符来说,比如计算机如何用二进制来表示”L“这个字母。...为了将数据存储为二进制形式,无论任何类型的数据都会先被转换为数字,然后将数字转为二进制形式。所以为了表示”L“,计算机首先将L转换为数字表示,我们看下怎么做到这一点。...打开你的浏览器控制台,然后粘贴下面的代码:"L".charCodeAt(0)。你看到了什么?数字76?这就是字母L的数字编码。但是计算机怎么知道具体哪个数字代表那个字母呢?...领域覅那个面,如果处理数据的时间比到达的时间快,这一时刻仅仅到达了一小部分数据,那这小部分数据需要等待剩下的数据填满,然后再送过去统一处理。 这个"等待区域"就是buffer!...如果时间还不到,那么Node.js就会把数据放入buffer--"等待区域"中,一个在RAM中的地址,直到把他们发送出去进行处理。 一个关于buffer很典型的例子,就是你在线看视频的时候。

    1.4K20

    excel常用操作大全

    您只需从点击主菜单的格式菜单中选择单元格,然后将单元格分类设置为数字菜单标签下的文本。如果您想输入1-1、2-1等格式。...按照点击主菜单的“格式”菜单的步骤,选择“单元格”,然后将单元格的分类设置为“数字”菜单标签下的文本。...5.如果一个Excel文件中有多个工作表,如何将多个工作表同时设置为相同的页眉和页脚?如何一次打印多个工作表? 在EXCEL菜单的视图-页眉和页脚中,您可以设置页眉和页脚来标记信息。...13.如何将一个或多个选定的格单元拖放到新位置?按住Shift键可以快速修改单元格格内容的顺序。...在第一个单元格中输入起始数据,在下一个单元格中输入第二个数据,选择这两个单元格,将光标指向单元格右下角的填充手柄,沿着要填充的方向拖动填充手柄,拖动的单元格将按照Excel中指定的顺序自动填充。

    31.3K10
    领券