使用linux服务器,免不了和vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷的命令可以删除多行、范围。 删除行 在Vim中删除一行的命令是dd。...删除所有行 要删除所有行,您可以使用代表所有行的%符号或1,$范围: 1、按Esc键进入正常模式。 2、键入%d,然后按Enter键以删除所有行。...删除包含模式的行 基于特定模式删除多行的语法如下: :g//d 全局命令(g)告诉删除命令(d)删除所有包含的行。 要匹配与模式不匹配的行,请在模式之前添加感叹号(!): :g!...//d 模式可以是文字匹配或正则表达式,以下是一些示例: :g/foo/d-删除所有包含字符串“foo”的行,它还会删除“foo”嵌入较大字词(例如“football”)的行。 :g!.../foo/d-删除所有不包含字符串“foo”的行。 :g/^#/d-从Bash脚本中删除所有注释,模式^#表示每行以#开头。 :g/^$/d-删除所有空白行,模式^$匹配所有空行。
任务描述: 检查Word文件中包含特定关键字的所有页码。...基本思路: Word文件属于流式文件,在没有打开之前难以确定页码,可以考虑临时转换为PDF文件,这样就可以确定页码了,再逐页提取PDF文件中的文字,如果包含特定关键字就输出相应的页码。
题目: 输入一个由n个大小写字母组成的字符,按Ascii码值从小到大排序,查找字符串中第k个最小Ascii码值的字母(k>=1) 输入要求: 第一行输入大小写组成的字符串 第二行输入k, k必须大于0,...k可以大于字符串长度 输出要求: 输出该字母所在字符串的位置索引,字符串第一个位置索引是为0, k如果大于字符串长度,则输出最大值的怎么所在字符串的位置索引, 如果第k个最小Ascii码值的字母有重复,...则输出该字母的最小位置索引。...730246532 联系微信/QQ: 283340479 """ while 1: input_str = [] for line in iter(input, "end"): # 每行接收的东西
有时候,一行数据中前面的数据值都是0,从某列开始就是大于0的数值,我们需要知道首先出现大于0的数值所在的单元格。...例如下图1所示,每行数据中非零值出现的位置不同,我们想知道非零值出现的单元格对应的列标题,即第3行中的数据值。 ?...图2 在公式中, MATCH(TRUE,B4:M40,0) 通过B4:M4与0值比较,得到一个TRUE/FALSE值的数组,其中第一个出现的TRUE值就是对应的非零值,MATCH函数返回其相对应的位置...MATCH函数的查找结果再加上1,是因为我们查找的单元格区域不是从列A开始,而是从列B开始的。...ADDRESS函数中的第一个参数值3代表标题行第3行,将3和MATCH函数返回的结果传递给ADDRESS函数返回非零值对应的标题行所在的单元格地址。
背景 最近有个简单的迭代需求,需要统计下整个项目内的Toast的msg, 这个有人说直接快捷键查找下,但这里比较坑爹的是项目中查出对应的有1000多处。...几乎是边查文档编写,记录写编写过程: 查找目录下所有java文件 查找Java文件中含有Toast相关的行 在对应行中找出对应的id 使用id在String中查找对应的toast提示信息。...查找目录下所有java文件 这个我是直接copy网上递归遍历的,省略。...查找Java文件中的Toast 需要找出Toast的特征,项目中有两个Toast类 BannerTips和ToastUtils 两个类。 1.先代码过滤对应的行。...在对应行中找出对应的id 使用id在String中查找对应的toast提示信息。 最后去重。 最后一个比较简单,可以自己写,也可以解析下xml写。
我们可以使用游标 ROWNUM 来实现获取表的前 N 行记录。事实上,ROWNUM 是对查询结果集加的一个伪列,其需要先查询到结果集。...查找并替换字符串函数是 REPLACE(): SELECT REPLACE(SDEPT, '计算机', 'Computer') FROM student; 获取字符的 ASCII 码 在获取用户从键盘上的输入时经常需要将字符转换为...PL/SQL 提供了 ASCII 函数来实现字符到 ASCII 码的转换。...DUAL 表是 Oracle 中对所有用户可用的一个实际存在的表,这个表不能用来存储信息,在实际应用中仅用来执行 SELECT 语句。...DUAL 表是一个 1 行 1 列的表,其结构已固定,用户不能向该表进行插入删除等操作。
} } return count; } } 第一个for循环控制行,...第二个while循环来二分查找, 让Low=high 结束找到第一个负数开始出现的下标(此时 Low=high=第一个负数下标), 让count+(总长度-low)
); 从目标XML中返回包含所查询值的字符串。...#new_value,String格式,替换查找到的符合条件的数据 #作用:从目标XML中返回包含所查询的字符串 #这两个函数功能类似,一个是查询,一个是更新。...或NOT、XOR分别代表与、或、非、异或 在SQL注入的过程中,使用逻辑运算符判断语句是否被执行,从而判断是否有注入点 ?...user()查询用户,使用subst去结果的第一个字符,转换为ASCII码和114比较是否相等,r的ASCII码是114 SELECT if(ASCII(SUBSTR((SELECT USER()),...`COLUMNS` where table_name='表名' #查列 SELECT 列名 FROM 库名.表名 #查数据 几个小技巧 所有类型的SQL注入,都是基于查库、表、列语句(包括不限于URL中
如果col2是索引,查找索引为89的行元素,那么只需要查找两次,就可以获取到行元素所在的磁盘指针地址。 ?...B+树(B树的变种) 非叶子节点不存储数据,只存储索引(冗余)和指针,可以放更多的索引,树高降低 ;叶子节点包含所有索引字段;叶子节点比b树增加了指针连接;叶子节点有双向指针链接(首尾子节点还通过指针连接...InnoDB(聚集): 表数据文件本身是按照B+tree组织的一个索引结构文件 frm文件:存储这张表的表结构 ibd文件:存储这张表的所有数据行和索引字段 聚集(聚簇)索引----叶节点包含完整数据记录...如果不手动指定主键,InnoDB会从插入的数据中找出不重复的一列作为主键索引,如果没找到不重复的一列,InnoDB会在后台增加一列rowId做为主键索引。...其次,索引的数据类型是整型,一方面整型占有的磁盘空间或内存空间相比字符串更少,另一方面整型比较比字符串比较更快速,字符串比较是先转换为ASCII码,然后再比较的。
B-Tree索引适用于全键值、键值范围或键前缀查找。其中键前缀查找只适用于最左前缀查找 全值匹配 全值匹配指的是查找列和索引中的所有列进行等值匹配。...对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。...哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。...,不过在内存中访问数据行的速度非常快,所以大部分情况下这一点对性能的影响并不明显 哈希索引数据并不是按照索引值顺序存储的,所以无法适用于排序 哈希索引不支持部分索引列匹配查找,因为哈希码是通过索引列的全部内容计算的...聚簇索引的优点 将索引值与数据行保存在同一个B-tree中,因此从聚簇索引中获取数据通常比在非聚簇索引中查找要快 使用覆盖索引扫描的查询可以直接使用该索引对应的主键值(ps:指的是非聚簇索引叶子节点保存有聚簇索引的主键值
如果查询中的比较要返回包含”abc “(abc 后有一个空格)的所有行,则将不会返回包含”abc”(abc 后没有空格)的列所在行。但是可以忽略模式所要匹配的表达式中的尾随空格。...如果查询中的比较要返回包含”abc”(abc 后没有空格)的所有行,则将返回以”abc”开始且具有零个或多个尾随空格的所有行。...例如,一个样本数据库包含名为 comment 的列,该列含文本 30%。...若要搜索在 comment 列中的任何位置包含字符串 30% 的任何行,请指定由 WHERE comment LIKE ‘%30!%%’ ESCAPE ‘!’ 组成的 WHERE 子句。...使用 ESCAPE 子句 下例使用 ESCAPE 子句和转义符查找 mytbl2 表的 c1 列中的精确字符串 10-15%。
数据湖文件格式用作数据处理单元,其中数据源以面向列的格式压缩以优化查询和探索。最后数据湖表格式通过将所有数据源聚合到一个表中来帮助进行数据分析。...但是像 Snowflake 这样的数据湖不使用索引[26],因为在庞大的数据集上创建索引可能很耗时[27]。相反,它计算表的列和行的特定统计信息[28],并将这些信息用于查询执行。...因此数据湖应该有一些机制来提供数据的早期可视化,让用户了解数据在摄取过程中包含的内容。 支持批量加载 虽然不是必须的,但当数据需要偶尔大量加载到数据湖时,批量加载非常有必要[30]。...数据安全 由于数据湖依赖于低成本的开源技术并存储半结构化和非结构化数据,因此敏感数据可能会被误用。因此数据湖应该允许集中控制,其粒度甚至可以扩展到行级别的控制访问,以确保符合监管标准。...) [28] 列和行的特定统计信息: [https://stackoverflow.com/questions/58491962/does-snowflake-support-indexes](https
alpha:] 字母 [:ascii:] ASCII字符 [:blank:] 空格或制表符 [:cntrl:] ASCII控制字符 [:digit:] 数字 [:graph:] 非控制、非空格字符 [:...:锚定行的结束 如:‘grep’匹配所有以grep结尾的行。 . :匹配一个非换行符的字符 如:‘gr.p’匹配gr后接一个任意字符,然后是p。...\< :锚定单词的开始,如:‘\<grep’匹配包含以grep开头的单词的行。 \> :锚定单词的结束,如‘grep\>’匹配包含以grep结尾的单词的行。...$ ls –l | grep ‘^a’ 通过管道过滤ls –l输出的内容,只显示以a开头的行。 $ grep ‘test’ d* 显示所有以d开头的文件中包含test的行。...$ grep ‘[a-z]\{5\}’ aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
:/etc 7、sort:按ascii码的行首字母对文件的行做排序 sort file1 :按ascii码值增大的顺序 sort -r file1:按ascii码值减少的顺序 sort -n file1...9、cut :从文件中抽出某一部分 如: cut -c2 q :从文件q中抽出每一行的第2个字符 cut -c2-10 q:从文件中抽出每一行的第2到第10个字符 cut -c2- q:从q中抽出每一行第...如: $tr k K < file1 将file1中所有的k换成K $tr -d k <file1 将file1中所有的k删除 $tr '[A-Z]' '[a-z]' <file1 将file1中所有的大写字母换成小写字母...grep -i A * :-i 表示不区分大小写,A或a都行 grep -v A file :将file中所有不包含A的行打印出来 grep -l teacher *:只显示含有teacher的文件的文件名而不显示具体的行...-e 'wadfadfdf' filename :表示在filename 中查找wadfadfdf行并显示其后的200行 13、 tee:从标准输入读取数据,显示在标准输出上,并将内容写在指定的文件中
可以简单的理解为“排好序的快速查找数据结构”,数据本身之外,数据库还维护者一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。...为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值,和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到对应的数据,从而快速检索出符合条件的记录...(secondary index) 聚集索引和非聚集索引都是B+树结构 从逻辑角度 主键索引:主键索引是一种特殊的唯一索引,不允许有空值 普通索引或者单列索引:每个索引只包含单个列,一个表可以有多个单列索引...在Innodb中,索引分叶子节点和非叶子节点,非叶子节点就像新华字典的目录,单独存放在索引段中,叶子节点则是顺序排列的,在数据段中。...辅助(非主键)索引: 这次我们以示例中学生表中的name列建立辅助索引,它的索引结构跟主键索引的结构有很大差别,在最底层的叶子结点有两行数据,第一行的字符串是辅助索引,按照ASCII码进行排序,第二行的整数是主键的值
,索引中包含了name,birthday列的值。...例如上面例子中的索引无法用于查找某个特定生日的人,因为生日不是最左数据列。也不能查找last_name以某个字母结尾的人。 不能跳过索引的列。...上述索引无法用于查找last_name为Smith并且某个特定生日的人。如果不指定first_name,则mysql只能使用索引的第一列。...哈希索引 哈希索引,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。...这是一课B+树,它的叶子页包含了行的全部数据,节点页只包含了索引列(即主键)。 二级索引 对于InnoDB表,在非主键列的其他列上建的索引就是二级索引(因为聚集索引只有一个)。
可以简单的理解为“排好序的快速查找数据结构”,数据本身之外,数据库还维护者一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。...为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值,和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到对应的数据,从而快速检索出符合条件的记录...在Innodb中,索引分叶子节点和非叶子节点,非叶子节点就像新华字典的目录,单独存放在索引段中,叶子节点则是顺序排列的,在数据段中。...辅助(非主键)索引: 这次我们以示例中学生表中的name列建立辅助索引,它的索引结构跟主键索引的结构有很大差别,在最底层的叶子结点有两行数据,第一行的字符串是辅助索引,按照ASCII码进行排序,第二行的整数是主键的值...就是select的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。
最近在项目中用了UUID的方式生成主键,一开始只是想把这种UUID的方式生成主键记录下来,在查阅资料的过程中,又有了一些新的认识和思考。 主键定义 唯一标识表中每行的一个列(或一组列)称为主键。...主键用来表示一个特定的行。...主键设计和应用原则 除了满足MySQL强制实施的规则(主键不可重复;一行中主键不可为空)之外,主键的设计和应用应当还遵守以下公认的原则: 不更新主键列中的值; 不重用主键列的值; 不在主键列中使用可能会更改的值...UUID UUID:通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息数目的一个128位标识符,还有相关的术语:全局唯一标识符...UUID是由一组32位数的16进制数字所构成,标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。
第二范式:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码,不存在部份依赖,但是可能还存在数据冗余、更新异常等问题 第三范式:首先满足第二范式,并且所有非主属性都完全依赖于主码,所有非主属性对任何候选关键字都不存在传递依赖...B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连,便于区间查找和遍历。...而且在数据库中基于范围的查询是非常频繁的。 简述Hash索引 哈希索引对于每一行数据计算一个哈希码,并将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。...对于select * from 非主键=XX,基于非主键的查询有可能存在回表过程,因为如果非主键建立的索引中不能包含查询的全部的信息,需要根据主键id在根据主键建立的索引树上进行查找,这个过程叫回表。...eq_ref:唯一性索引扫描,返回所有匹配某个单独值的行。 ref:非主键非唯一索引等值扫描,const或eq_ref改为普通非唯一索引。 range:范围扫描,在索引上扫码特定范围内的值。
因此,综合上面的规范,账号-账户管理模块命名为identity,相关的表命名为: 模块中的数据字典以列数据的方式存储,名称为:d_l_identity_dc。...父主键关联:pid 行数据规范 所有的表必须包含modify_date、modify_type、modify_user、modify_access_id、activity字段。...在分布式微服务系统中采用Mysql的自增主键在分表分库、灾备合库、分布式执行、缓存Write-Behind写时会有很大制约,因此需要制定不依赖数据库的行主键规范。...mysql中要求单表唯一。 逻辑主键是与数据库无关的非业务意义的主键,用于对行数据的唯一性进行标识。在单数据库系统中,通常不需要逻辑主键,而在分布式系统中,逻辑主键的意义重大。...此外UUID的长度是32位字符串,即使用ascii的编码方案,也会占据不少的空间。
领取专属 10元无门槛券
手把手带您无忧上云