在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的。...shell> sort -k2n file | uniq 这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。...经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。 第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。...P; D' 最后附一个必须先用sort排序的文本的例子,当然,这个需要用sort排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的行可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了...参考推荐: 删除文本中的重复行(sort+uniq/awk/sed)
现在有一个文件 aa.txt,内容如下: 现在想把结尾是 11 的那些行最后的换行符替换成空格. 使用 vim 编辑打开 aa.txt 之后,在末行模式输入如下内容。...这段 g/11$/ g表示开始匹配指定的行,哪些行呢?由g后面的//里指定。这里写的是11$, 表示以 11 结尾的那些行。...这段 s/\n/ /g s 表示替换,把那些行的换行符(\n 表示)换成" "即替换成空格。 最终的效果如下图所示。 当然要删除最后的换行符,可以写成%g/11$/s/\n//g 。
-n选项(例如-n -x来打印文件中除最后x行之外的所有行 因此,我们可以使用此选项以直接的方式解决我们的问题: $ head -n -3 rumenz.txt 1 rumenz.com 2 rumenz...2 rumenz 3 入门 4 小站 然而,我们的问题是从输入文件中删除最后三行。...但是,如果我们可以颠倒输入文件中的行顺序,问题就会变成从文件中删除前 n 行。一个简单的 sed 单行sed 1,n d可以删除前n行。之后,如果我们再次反转线条,我们的问题就解决了。...tac命令可以反向文件中的行的顺序。...在第一遍中,它会找出文件中的总行数,在第二遍中,我们打印我们想要保留的那些行: $ awk -v n=3 'NR==FNR{total=NR;next} FNR==total-n+1{exit} 1'
背景 今天在定位问题时,通过日志打印出来调用第三方接口的返回结果对象的值,但因为这个返回信息太多,导致日志打印时对应的这行日志翻了四五屏才结束,这种情况下不好复制粘贴出来去具体分析返回结果对象,主要是我们需要针对返回的...提取 vim logs/service.log打开对应的日志文件,然后:set nu设置行号显示,得到对应的日志所在行号为73019 使用sed -n "开始行,结束行p" filename将对应的日志打印出来...sed -n "73019,73019p" logs/service.log,过滤得到我们所需要的日志行。 将对应的日志保存到文件中,方便我们分析。...sz 20220616.log 使用Nodepad++打开json文件,此时打开文件还是一行数据,我们需要将json数据进行格式化,变成多行。...【插件】->【JSON Viewer】->【Format JSON】 过滤出指定Key所在的行,grep imei 20220616.log > 20220616_imei.log 最终得到了我们想要的数据
匹配1开头11位数字的手机号码: 1^1\d{10}$ 匹配银行卡号是14~18位的数字: 1^\d{14,18}$ 匹配以a开头的,0个或多个b结尾的字符串 1^ab*$ 3....:617628 4匹配结果:176 5匹配结果:2991 6匹配结果:871 由结果可见:本来字符串中的“61762828”这一段,其实只需要出现3个(617)就已经匹配成功了的,但是他并不满足,而是匹配到了最大能匹配的字符...:617628 4匹配结果:2991 5匹配结果:87321 “617628” 是前面的\d{1,2}匹配出了61,后面的匹配出了7628 "2991" 是前面的\d{1,2}匹配出了29 ,后面的匹配出了...(\d{3,4}) 3匹配结果:61762 4匹配结果:2991 5匹配结果:87321 解答: “61762” 是左边的懒惰匹配出6,右边的贪婪匹配出1762 "2991" 是左边的懒惰匹配出2,右边的贪婪匹配出...991 "87321" 左边的懒惰匹配出8,右边的贪婪匹配出7321 5.
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。...1 [root@localhost test]# cat 4.log | grep -f 3.log 1 12 43 说明: cat 3.log | grep -f 4.log 从3.log文件中匹配出含有...4.log中关键字的行并输出 cat 4.log | grep -f 3.log 从4.log文件中匹配出含有3.log中关键字的行并输出 如:4.log中的关键字有1,12,5,43四个,在3.log...中无论是完全匹配还是部分匹配只能匹配到1,并输出 在 3.log中关键字为1,2,3, 所以在4.log中匹配3时,能完全匹配到含有1,2,3的行,并把匹配部分着色表示输出 5....log 1:1 2:12 4:43 [root@localhost test]# cat 3.log | grep -nf 4.log 1:1 说明: 输出4.log文件中含有从3.log 文件中读取出的关键词的内容行
以递归的方式查找符合条件的文件 13.反向查找 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。...1 [root@localhost test]# cat 4.log | grep -f 3.log 1 12 43 说明: cat 3.log | grep -f 4.log 从3.log文件中匹配出含有...4.log中关键字的行并输出 cat 4.log | grep -f 3.log 从4.log文件中匹配出含有3.log中关键字的行并输出 如:4.log中的关键字有1,12,5,43四个,在3.log...中无论是完全匹配还是部分匹配只能匹配到1,并输出 在 3.log中关键字为1,2,3, 所以在4.log中匹配3时,能完全匹配到含有1,2,3的行,并把匹配部分着色表示输出 5....log 1:1 2:12 4:43 [root@localhost test]# cat 3.log | grep -nf 4.log 1:1 说明: 输出4.log文件中含有从3.log 文件中读取出的关键词的内容行
前言 本文主要介绍如何在Linux Ubuntu系统安装code-server,并结合cpolar内网穿透工具配置公网地址,轻松实现使用安卓手机、平板等设备远程使用vscode开发写代码。...安卓平板测试访问 打开安卓浏览器,任意浏览器,输入上面的链接即可访问成功 5.固定域名公网地址 在cpolar内网穿透中,因为我们刚刚创建的隧道选择是免费随机临时隧道,它生成的公网地址会在24小时内变化...,为了更加稳定的访问,我们接下来把它配置成固定的地址。...登录cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到需要配置二级子域名的隧道(本例中为code-server隧道),点击右侧的编辑 修改隧道信息,将二级子域名配置到隧道中:...打开安卓浏览器输入上面的固定http链接即可访问成功 6.结语 在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,
前言: 书接上回《内存映射技术分析》,继续来分析一下linux的物理内存管理。 分析: 1,物理内存 PC上的内存条,或者手机上的内存芯片,物理上实实在在的内存,就是物理内存。...一台机器上,含有一个或者多个node。 含有一个node的是UMA,含有多个node的是NUMA。 node编号从0开始。在UMA上,其实也是使用NUMA模型,只是说,只有一个node 0。...4,zone 一个node中,含有一个或者多个zone。 还是dmesg: ? 作者的机器是64bit的。32bit和64bit还有挺大区别的。...比如说,2M的没有了,就需要把4M的内存分成两个2M的,其中一个分配出去,一起保存在2M的list中。时间长了,就会出现很多小块的内存,就是所谓的内存碎片。...当然,这个链表上的page的order都是0。 在linux-4.0.4/mm/page_alloc.c中: ? order为0的情况下,优先选择从pageset中申请。
当上游给我的分析数据中只有实验编号,而下游care的却是真实的患者信息的时候;当然,在茫茫data中一直Ctrl+F、Ctrl+C、Ctrl+V,重复那么几百次也是可以做到的;如果你真的这么做了,那么疯就是迟早的事了...;vlookup啊,一个公式解决所有繁琐,Excel中的无尽宝藏真是值得我们探索!!!...当多个大名鼎鼎的数据库都有自己独树一帜的命名方式(ID转换这种事情简直是数据挖掘入门第一课),而我需要把它们一一匹配起来才能往下分析的时候,R里的merge简直是在这热不死人的广东里如空调一样救命的发明...lookup_value 检索时用来匹配的值 table_array 需要匹配出来的结果的范围 col_index_num 需要匹配出来的具体内容位于table_array中lookup_value后的第几列...range_lookup 0(精确匹配)或1(近似匹配) $表示限制,放在行前面即行数不变,放在列前面同理; 第一行公式写完后,选中,鼠标放在末尾有个+号,双击产生所有查询的结果; ?
root:/bin/bash [root@xie-02 awk]# awk -F ':' '/root/ {print $1,$3} /sshd/ {print $1,$3}' test.txt //匹配出含有...root的行的第一段和第三段字符, //以及匹配出含有sshd的行的第一段和第三段字符。...root 0 operator 11 sshd 74 [root@xie-02 awk]# awk -F ':' '/root|sshd/ {print $1,$3}' test.txt //匹配出含有...扩展 通配符 它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通配符有几下几种: 符号 含义 * 匹配任意多个字符 ?...awk 合并一个文件 如把两个文件中,第一列相同的行合并到同一行中。 解释:NR表示读取的行数,FNR表示读取的当前行数。
(可戳量子位之前的文章:为了不把黑人兄弟认作大猩猩,谷歌的算法连真的大猩猩都不认识了) 检测结果 1、在一对一匹配中,相较于白人,亚裔和非裔的人脸识别错误率要高10到100倍。...4、不同国家开发的算法表现不同。美国开发的算法中,亚裔、非裔和土著的错误率很高。亚洲开发的算法中,白人和亚洲人的错误率差距较小。...“偏见”还有长尾影响 根据人脸识别的使用场景和功能,检测分为一对一匹配和一对多匹配: 一对一匹配一般用于手机人脸解锁或护照检查。...一对一匹配出现错误可能会导致人脸无法解锁,给生活带来麻烦。但是一对多匹配的错误可能后果更严重,就会让警察把无辜的人列入嫌疑名单。...美国俄勒冈州的参议员Ron Wyden在一份声明中说, 任何部署新技术的公司或政府有责任仔细检查其产品是否存在偏见和歧视,至少要在软件中彻底检查是否有Bug。
6校验日期 “yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。 7校验金额 金额校验,精确到2位小数。 8校验手机号 下面是国内 13、15、18开头的手机号正则表达式。...13提取URL链接 下面的这个表达式可以筛选出一段文本中的URL。...14文件路径及扩展名校验 验证windows下文件路径和扩展名(下面的例子中为.txt文件) 15提取Color Hex Codes 有时需要抽取网页中的颜色代码,可以使用下面的表达式。...17提取页面超链接 提取html中的超链接。 18查找CSS属性 通过下面的表达式,可以搜索到相匹配的CSS属性。 19抽取注释 如果你需要移除HMTL中的注释,可以使用如下的表达式。...20匹配HTML标签 通过下面的表达式可以匹配出HTML中的标签属性。 正则表达式的相关语法 下面是我找到的一张非常不错的正则表达式 Cheat Sheet,可以用来快速查找相关语法。
:nth-child 匹配一列兄弟元素中的元素——兄弟元素按照an+b形式的式子进行匹配(比如2n+1匹配元素1、3、5、7等。即所有的奇数个)。...:nth-of-type 匹配某种类型的一列兄弟元素(比如,元素)——兄弟元素按照an+b形式的式子进行匹配(比如2n+1匹配元素1、3、5、7等。即所有的奇数个)。...兄弟元素按照an+b形式的式子进行匹配(比如2n+1匹配按照顺序来的最后一个元素,然后往前两个,再往前两个,诸如此类。从后往前数的所有奇数个)。...伪元素参考表 伪元素 选择器 描述 ::after 匹配出现在原有元素的实际内容之后的一个可样式化元素。 ::before 匹配出现在原有元素的实际内容之前的一个可样式化元素。...::first-letter 匹配元素的第一个字母。 ::first-line 匹配包含此伪元素的元素的第一行。 ::grammar-error 匹配文档中包含了浏览器标记的语法错误的那部分。
wget http://linux.vbird.org/linux_basic/0330regularex/regular_express.txt 样例详解 1.查找特定字符串 查找包含the的行 [root...在linux中每行是以$来结尾的,那么如何匹配空白行呢?...在正则表达式中并不是特殊字符,所以要想查找文件中含有!和>字符的行,可以这样。 [root@localhost tmp]# grep -n '[!...>]' regular_express.txt 强调一下,正则表达式和linux的通配符是不一样的,在通配符中*代表零到无限多个字符,比如我使用 [root@localhost tmp]# ls test...The world is the same with "glad". 5. ()+:多个重复组判断 在下面的文本内容中,找出以A开头C结尾的含有一个以上的xyz字符串。
---- 正则表达式 在scala中,可以很方便地使用正则表达式来匹配数据。...定义 Regex 类 scala中提供了Regex类来定义正则表达式 要构造一个RegEx对象,直接使用String类的r方法即可 建议使用三个双引号来表示正则表达式,不然就得对正则中的反斜杠来进行转义...示例2 找出以下列表中的所有不合法的邮箱 "38123845@qq.com", "a1da88123f@gmail.com", "zhansan@163.com", "123afadff.com...有以下邮箱列表 "38123845@qq.com", "a1da88123f@gmail.com", "zhansan@163.com", "123afadff.com" 使用正则表达式进行模式匹配,匹配出来邮箱运营商的名字...例如:邮箱zhansan@163.com,需要将163匹配出来 – 提示: 可以使用括号()来匹配分组 打印匹配到的邮箱以及运营商 参考代码 // 使用括号表示一个分组 val regex = "
space中的内容取回, 进行输出....我们需要处理的行,很多情况下是用"pattern"匹配出来的。如果我们需要处理匹配行的前一行或者后一行有什么办法呢?...根据上述对命令“n"的讲解: /3/n, 表示当匹配到含有"3"这个行的时候, 执行命令n, 也就是把下一行读入到pattern space 来替换掉当前含有"3"的这一行,然后执行下一条命令"/6/...b",很显然,对于含有"3"的这一行不匹配,所以这个语句不会执行,最后的语句p ,没有执行条件,所以就打印了pattern space中的内容,而pattern space 中的内容本应该是含有"3"的当前行...在“/3/,/6/" 这个范围中的最后一行出现了,对于"/3/n" 命令,显示不匹配,所以匹配到了"b" 这个命令.
,跟号前面的字符相关,可以是0个或多个,跟后面的字符没有什么关系,若是在一行中无 h 而有 n 也会匹配出来(这就表示0个h) grep命令 '.*' grep '.*' inittab /...(只要是成对的 h 就都会匹配出来) \ 表示脱义,若不加脱义符号,则无法匹配出来 [root@localhost grep]# grep 'h\{2\}' inittab hhhhan [root@...'h\{0,4\}' inittab //匹配文件中h出现0到4次的都会匹配出来 # inittab is no longer used when using systemd. hhhhan haaaaannnn...gfdgfg hghjhk:1f:hjjkuhhj [root@localhost grep]# grep命令 'root|nologin' grep 'h|1f' inittab //在文件中匹配出...问号前面0个或一个问号前面的字符 |竖线,表示或者 grep扩展 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.php" 'eval' /data
=========在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象 test() 方法是一个正则表达式方法。...test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false ①实例:搜索字符串中的字符“e” 如果含有就返回true。...六、正则表达式方法exec() exec() 方法用于检索字符串中的正则表达式的匹配。 该函数返回一个数组,其中存放匹配的结果。...* 格式一:链接: https://pan.baidu.com/s/15gzY8h3SEzVCfGV1xfkJsQ 提取码: vsuw 复制这段内容后打开百度网盘手机App,操作更方便哦 * 格式二...shareid=179436&uk=3272055266 提取码: vsuw 复制这段内容后打开百度网盘手机App,操作更方便哦 * 匹配出下载地址和提取码,并且还支持如果没有提取码,也能匹配出下载链接
转义之后代表着文本中真正真实存在我们看到的具体的 . ? ---- 2、字符的边界, 查找匹配多个字符需要用到字符边界 ^ 开头(一行开头) $ 结尾(一行结尾) \< 左边界 \> 右边界 ?...Linux下 dos2unix 命令可以吧windows格式文件转换为Linux, unix2dos 命令可以把Linux格式转为Windows ---- 3、重复 * 重复0次或多次, 注意命令 ls...a的次数大于等于0次,字符中没有a,它相当于没有,所以匹配所有,但是不会高亮颜色,因为没有a. ? 上图可以看出第2、5行没有d,那如果要只匹配d的行打印出来咋整: ?...精确匹配次数 {} 中填入数字代表匹配次数,大于等于次数的行被匹配出来 Example: a精确匹配5次,a出现的次数大于等于5次的行被匹配出来. ?...pig或者dog出现的次数大于等于1,就匹配这一样。 ? pig一组,dog一组。pig或者dog出现满足某一行精确到出现两次就匹配。 本文通过Linux天使团的讨厌的Shell正则整理。
领取专属 10元无门槛券
手把手带您无忧上云