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

Linux入门学习笔记二

grep工具的功能其实还不够强大,grep实现的只是查找功能,而它却不能实现把查找的内容替换掉。以前用vim的时候,可以查找也可以替换,但是只局限于在文本内部来操作,而不能输出到屏幕上。...-V,–version打印版本和版权信息 -i 直接修改读取的档案内容,而不是由萤幕输出 动作说明: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c...除了可以使用 ‘/’ 作为分隔符外,还可以使用其他特殊字符例如 ‘#’ 或者 ‘@’ 都没有问题 案例 显示 sed -n '1,2p' test.txt ##显示一二两行,逗号间隔^表示开通$表示结尾...新增(目前的下一行) sed '1,2a sdg' test.txt ## 在一二两行后添加一行sgd 删除 sed -n '1,2d' test.txt ##显示一二两行,逗号间隔^表示开通$表示结尾...若匹配字符串是变量,则需要“”,而不是‘’。

1.1K10

Linux下文本处理“三剑客”

grep工具的功能其实还不够强大,grep实现的只是查找功能,而它却不能实现把查找的内容替换掉。以前用vim的时候,可以查找也可以替换,但是只局限于在文本内部来操作,而不能输出到屏幕上。...-V,–version打印版本和版权信息 -i 直接修改读取的档案内容,而不是由萤幕输出 动作说明: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~...除了可以使用 ‘/’ 作为分隔符外,还可以使用其他特殊字符例如 ‘#’ 或者 ‘@’ 都没有问题 案例 显示 sed -n '1,2p' test.txt ##显示一二两行,逗号间隔^表示开头$表示结尾...新增(目前的下一行) sed '1,2a sdg' test.txt ## 在一二两行后添加一行sgd 删除 sed -i '/匹配字符串/d' filename (注:若匹配字符串是变量,则需要...“”,而不是‘’。

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

    Makefile基本用法

    默认执行第一行。 ? 其中,下面两行等价 ? ? 使用变量简化 添加objects变量后,形成以下简化形式。内容不变。 ?...force给出一行空依赖显式声明,防止force作为%的一员,被隐式自身依赖自身的隐式构建。...管道命令 对要调用的规则施加特定的顺序,而不必强制更新目标,使用管道命令。 当执行此条规则,则首先需要执行先决条件的规则。然而当先决条件存在,不论是否被更改,都属于满足条件。...其中第二部分的单双引号区别由bash控制而不是makefile。 ? 。。。。 ? ? 。。。。 ? ? 。。。。 ?....ONESHELL .ONESHELL定义后,在构建一个目标时,方法的所有行都将被赋予shell的一次调用,而不是单独调用每一行。

    2.8K40

    Sed 文本编辑器

    你的眼睛(或屏幕阅读器)会扫描文本,找到你想改变的单词或你想插入或删除文本的地方,然后你就可以开始输入了。而 sed 没有交互模式,所以你需要告诉它必须满足什么条件才能运行特定的命令。...例如,1~2 表示每两行选择一行(“从第一行开始每两行选择一行”)。...行定位 你可以通过使用 $ 作为选择器,只对文件的最后一行进行操作: $ sed '$p' example.txt hello world This is line three....你可以通过声明所需的匹配条件($ 表示最后一行),并将你希望执行的 s 命令放在紧随其后的括号中,强制 sed 只影响最后一行: $ sed '$ {s/line/\U&/}' example.txt...,但它是你作为 POSIX 用户的一个强大的选择。

    1.6K00

    Shell四剑客实操案例

    如果用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这时可以使用SED高级语法来满足用户需求。...在jfedu.txt每行后加入空行,也即每行占永两行空间,每一行后边插入一行空行、两行空行及前三行每行后插入空行: sed ‘/^$/d;G’ jfedu.txtsed ‘/^$/d;G;G’ jfedu.txtsed...Action处理; action是处理动作,常见动作为Print; 使用#作为注释,pattern和action可以只有其一,但不能两者都没有。...;-n 顺便输出行号; 学习Grep时,需要了解通配符、正则表达式两个概念,很多读者容易把彼此搞混淆,通配符主要用在Linux的Shell命令中,常用于文件或者文件名称的操作,而正则表达式用于文本内容中的字符串搜索和替换...以字符test开头,接5或者3的行;grep “^[^test]” jfedu.txt 显示输出行首不是test的行;grep “[Mm]ay” jfedu.txt 匹配M或m开头的行;grep “K

    2.6K21

    一行代码搞定分组回归

    具体而言,如果此时keyby语句循环到'a',那么.SD就表示原数据集中所有stkid == 'a'的行。在这里,.SD用来作为回归函数lm的输入数据集。 coef函数用来提取回归的系数。...如果我们的回归不是单自变量而是双自变量,那么每个分组就会有三行观测了,一行是截距,还有两行是系数。...其中的原理是,data.table最终的输出必须是一个class为list的元素,符合条件的除了list自己,还包括 data.frame,data.table等。...如果我们只加coef函数而不加as.list,那么最终输出的是一个vector,data.table会自动把这个vector拉直(也就是上图看到的这样),而加了as.list之后,原来输出vector就被打包成了...是不是很神奇?至于原理,大家自己回去研究哦。 ? 下 期预告 下期我们继续探索data.table包的强大功能,大猫教大家如何用一行代码搞定滚动回归!

    3.8K40

    在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)

    这意味着,生成的规则表中并非存在两行来证明同一结论值(按从上到下的顺序求值),而是只存在一行来证明 结论值,同时具有多个可按任何顺序求值的选项。规则需要考虑到有些条件值为未知时这很有用。 ?...如果表的第一行无法 求值(即如果有些条件值未知),即使表中后面的行因为其所有条件值完全已知而可以求值,规则表整体的 求值也不会超过第一行。 在某些情况下,这不是规则求值的最有用方式。...例如,在下面的规则单元格中,我们希望两行中的任一行能够证明结论。 ?...但是,如果我们合并包含适用于这两行的结论的单元格,则 Oracle Policy Modeling 生成的内部规则 会将这些行与单个规则表行中的“或者”条件合并,而不是上面生成的两个单独规则表行。...编写决策应用于一系列数字或日期的比较类型规则 对于非文本条件,决策可能应用于一系列数字或日期,而不是特定数字或日期。 简单的例子就是将特定日期范围的应纳税所得额映射至税率: ?

    5.3K30

    Sed 高级功能:我这小脑瓜都快绕晕了

    D;$d' file 在《Linux生产环境上,最常用的一套“Sed“技巧》一文中,我们介绍了常用的sed命令和操作,而且使用了两张图来作为辅助。...那就是“上一行的内容” ,叫做hold space。而当前行,叫做patter space。...,但是两行之间依然含有\n换行符 p 打印当前的pattern space P 打印当前的pattern space中的第一行 不常用的 上次提到的推箱子游戏,就用了很多这种东西。...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。测试命令。...当然还有其他更不常用的,可以使用man命令查看 man sed 一些命令:开启训练模式 看着一行行进行处理,好像很简单是不是?不可能的,看下面几个简单的命令,训练一下生锈的脑子。

    1K20

    sed & awk 第二版学习(五)—— 高级 sed 命令

    和之前的结果比较,有两个明显的问题:一是第二段原来是一行,现在在 shipped 前多个一个换行符,而整段后面的换行符没有了;第二个是最后一句没有按预期进行替换。...分支命令可用于将一组命令作为一个过程来执行,这个过程可以从脚本的主体中重复调用。...第一个分支命令执行的条件是匹配模式,第二个命令执行没有条件。 2. 测试命令 如果在当前匹配地址的行上进行了成功的替换,那么 t 命令就转到标签或脚本结尾处,因此它隐含了一个条件分支。...这里只删除模式空间的第一部分,而不是清空它,因为在读取另一个输入行之后,有可能要进行跨两行的匹配。...,继续处理下一行 } # 如果这不是第一行,则检查当前行与前一行拼接后是否包含搜索字符串 cur = $0 pre = prev_line gsub

    64310

    MySQL 案例:Update 死锁详解

    背景 锁作为 MySQL 知识体系的主要部分之一,是每个 DBA 都需要学习和掌握的知识。锁保证了数据库在并发的场景下数据的一致性,同时锁冲突也是影响数据库性能的因素之一。...而锁冲突中,有一类很经典的场景经常会拿出来讨论:死锁。最近刚好也遇到了一个典型的死锁案例,本文会基于这个案例,做一次详细的分析与拆解。...用户针对这个死锁的问题,提出了疑问:数据更新的并不是同一行,使用的也是不同的索引,为什么会发生死锁?......... 20 lock struct(s), heap size 2936, 40 row lock(s) 可以很明显可以发现,这两个语句涉及到的数据行还是比较多的,用户的疑问:数据更新的并不是同一行...因此本案例中,虽然死锁信息中记录的索引名称不一样,但是锁争用的条件是成立的,即:trx1 通过二级索引向主键上执行了加锁操作,而 trx2 在其他的二级索引上拿到了锁,但是主键锁拿不到,因此进入了等待状态

    15.8K174

    MySQL实战第四十四讲- 答疑文章:说一说这些好问题

    从逻辑上可以这么理解,最后的两行,由于表 b 中没有匹配的字段,结果集里面 b.f2 的值是空,不满足 where 部分的条件判断,因此不能作为结果集的一部分。...顺序扫描表 b,对于每一行数据,判断 join 条件(也就是 (a.f1=b.f1) and (a.f1=1))是否满足,满足条件的记录, 作为结果集的一行返回。...你可能会想,语句 Q2 的查询结果里面少了最后两行数据,是不是就是把上面流程中的步骤 3 去掉呢?...因此,语句 Q2 的执行流程是这样的:顺序扫描表 b,每一行用 b.f1 到表 a 中去查,匹配到记录后判断 a.f2=b.f2 是否满足,满足条件的话就作为结果集的一部分返回。...这时候,如果 binlog 重放,是不是会发生语句 B 的 id 为 1,而语句 A 的 id 为 2 的不一致情况呢?

    43560

    MySQL实战第四十四讲- 要不要使用分区表?

    从逻辑上可以这么理解,最后的两行,由于表 b 中没有匹配的字段,结果集里面 b.f2 的值是空,不满足 where 部分的条件判断,因此不能作为结果集的一部分。...顺序扫描表 b,对于每一行数据,判断 join 条件(也就是 (a.f1=b.f1) and (a.f1=1))是否满足,满足条件的记录, 作为结果集的一行返回。...你可能会想,语句 Q2 的查询结果里面少了最后两行数据,是不是就是把上面流程中的步骤 3 去掉呢?...因此,语句 Q2 的执行流程是这样的:顺序扫描表 b,每一行用 b.f1 到表 a 中去查,匹配到记录后判断 a.f2=b.f2 是否满足,满足条件的话就作为结果集的一部分返回。...这时候,如果 binlog 重放,是不是会发生语句 B 的 id 为 1,而语句 A 的 id 为 2 的不一致情况呢?

    42540

    实战分享 | 你知道这个死锁是怎么产生的吗?

    ---- Part1 背景 锁作为 MySQL 知识体系的主要部分之一,是每个 DBA 都需要学习和掌握的知识。锁保证了数据库在并发的场景下数据的一致性,同时锁冲突也是影响数据库性能的因素之一。...而锁冲突中,有一类很经典的场景经常会拿出来讨论:死锁。最近刚好也遇到了一个典型的死锁案例,本文会基于这个案例,做一次详细的分析与拆解。...用户针对这个死锁的问题,提出了疑问:数据更新的并不是同一行,使用的也是不同的索引,为什么会发生死锁?...20 lock struct(s), heap size 2936, 40 row lock(s) 可以很明显可以发现,这两个语句涉及到的数据行还是比较多的,用户的疑问:数据更新的并不是同一行,其实是个误解...因此本案例中,虽然死锁信息中记录的索引名称不一样,但是锁争用的条件是成立的,即:trx1 通过二级索引向主键上执行了加锁操作,而 trx2 在其他的二级索引上拿到了锁,但是主键锁拿不到,因此进入了等待状态

    73650

    图解LeetCode——782. 变为棋盘(难度:困难)

    数字布局:以0开始进行数字布局,还是以1作为数字布局。...3.2> 难点1:矩阵是否合法(判断条件二) 那么,由于棋盘中的每一行和列都是0与1互相穿插排序的,并且,虽然我们可以移动矩阵,但是我们改变的只是行或者列中元素的顺序,并无法改变它们的数量。...3.3> 难点2:如何计算出变为棋盘的步数 关于如何移动成为一个棋盘,因为我们是移动某一行或者某一列,那么只要这个矩阵满足了可以成为棋盘的条件之后,我们其实只需要关注第一行和第一列的移动情况即可。...也就是说,第一行和第一列已经满足了棋盘的条件,其他行和列,必然也会满足棋盘的条件。 那么怎么移动矩阵称为棋盘,并且如何判断移动的步数呢?...这里面,我们其实采用了“位差”的概念,也就是说,我们将矩阵的一行或者一列,去跟标准棋盘的一行或者一列进行对比(无论是以1开头还是以0开头,这个无所谓),他们之间出现的差值,其实就是我们应该移动的方格,而因为我们移动的时候

    40420

    程序员进阶之算法练习(三十六)贪心

    如果满足上面的条件,则输出"YES",否则输出"NO"。 输入: 第一行是h, w; (1≤ℎ, ?≤500) 接下来是h行字符,每行有w个。...输出: 满足上面的条件,则输出"YES",否则输出"NO"。...3.Beautiful Lyrics 题目链接 题目大意: 一段悦耳的歌词有两行,每行有两个单词,并且要求: 1、第一行的第一个单词中元音数量,和第二行第一个单词相同; 2、第一行的第二个单词中元音数量...输出: 第一行数字m,表示m段歌词。 接下来是m段歌词,每段两行。...而歌词的要求,可以表述为: 1、从相同长度字符串中,取出结尾相同的两个单词,作为第1、2行的第二个单词; 2、从相同长度字符串中,取出长度相同的两个单词,作为第1、2行的第一个单词; 从这里,我们可以得到一个贪心的策略

    71150

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    三剑客就是普通的命令,有的把他们叫做工具。而正则表达式就好比一个模版,而linux下一般只有三剑客能读懂这个模版。...-r/--regexp-extended 支持使用扩展正则表达式 -s/--separate 把文件作为单独的个体而不是作为单个连续的长流 3.4 命令参数的使用 命令建议用单引号’’或双引号括起来方便区分...n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 p 打印模板块的行。...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...grep查找到的内容的第1行后每次隔两行删一行 $ sed '/^$/d' 123.txt #删除空白行 在指定行前后插入内容 需用到命令:a\ 在当前行下面插入文本。

    10.2K21

    JavaScript里的分号,你加还是不加?

    缺乏分隔符,一条语句的结束就变成了另一条语句的开始,反之亦然。在我们初学编程,接触C语言的时候,就常常因为代码结尾没有分隔符或者分隔符写错,而引发程序bug。...2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...2.2 不加分号则上下两行代码无法解析 JavaScript并不是在所有换行的地方都填补分号,只有在缺少了分号就无法正确解析代码的情况下,才会填补分号; 如下示例: let a a = 3...如果将其作为表达式的后缀的话,它和表达式应该在同一行,否则,JavaScript会在行末添加添加分号,并且 ”++“ "--"会被作为下一句的前缀操作符与下一句一起解析。...如: x ++ y 这段代码解析为: x; ++y; 而不是: x++;y; 4.使用分号的好处 加上分号可以避免很多错误(例如,不完整的输入),开发人员可以放心的通过删除多余的空格来压缩代码

    2.5K11

    BZOJ1059: 矩阵游戏(二分图匹配)

    每次可以对该矩阵进行两种操作:行交换操作:选择 矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即交换 对应格子的颜色)游戏的目标,即通过若干次操作,使得方阵的主对角线...对于某些关卡,小Q百思不得其解,以致他开始怀疑这些关卡是不是根本就是无解的!!于是小Q决定写一个程 序来判断这些关卡是否有解。 Input   第一行包含一个整数T,表示数据的组数。...接下来包含T组数据,每组数据第一行为一个整数N,表示方阵的大 小;接下来N行为一个N*N的01矩阵(0表示白色,1表示黑色)。 Output   输出文件应包含T行。...对于每一组数据,如果该关卡有解,输出一行Yes;否则输出一行No。...HINT Source 这题好考智商啊,首先每一行每一列都有$1$是必要条件但不是充要条件 例如: 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 这题的充要条件是:存在$n$个$x,y

    34720

    每天学点JavaScript基础(2)——JavaScript里的分号,你加还是不加?

    2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...2.2 不加分号则上下两行代码无法解析 JavaScript并不是在所有换行的地方都填补分号,只有在缺少了分号就无法正确解析代码的情况下,才会填补分号; 如下示例: let a a = 3 console.log...3.2 有 ”++“ 或 ”--“运算符时 如果涉及 ”++“ ,”--“运算符的时候,这些表达式可以作为表达式的前缀,也可以作为表达式的后缀。...如果将其作为表达式的后缀的话,它和表达式应该在同一行,否则,JavaScript会在行末添加添加分号,并且 ”++“ "--"会被作为下一句的前缀操作符与下一句一起解析。...如: x ++ y 这段代码解析为: x; ++y; 而不是: x++;y; 4.使用分号的好处 加上分号可以避免很多错误(例如,不完整的输入),开发人员可以放心的通过删除多余的空格来压缩代码; 加上分号在某些情况下可以增进代码的性能

    1.1K11
    领券