首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 删除文本重复

在进行文本处理时候,我们经常遇到要删除重复情况。那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行。...shell> sort -k2n file | uniq 这里我做了个简单测试,当file重复不再一起时候,uniq将服务删除所有的重复。...经过排序后,所有相同行都在相邻,因此unqi可以正常删除重复。 第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。...P; D' 最后附一个必须先用sort排序文本例子,当然,这个需要用sort排序原因是很简单,就是后面算法设计时候“局部性”,相同可能分散出现在不同区域,一旦有新相同行出现,那么前面的已经出现记录就被覆盖了...参考推荐: 删除文本重复(sort+uniq/awk/sed)

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

    linux删除文件最后N小总结

    -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'

    7.5K10

    linux下提取日志文件某一JSON数据指定Key

    背景 今天在定位问题时,通过日志打印出来调用第三方接口返回结果对象值,但因为这个返回信息太多,导致日志打印时对应这行日志翻了四五屏才结束,这种情况下不好复制粘贴出来去具体分析返回结果对象,主要是我们需要针对返回...提取 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 最终得到了我们想要数据

    5.2K10

    正则表达式真的很骚,可惜你不会写!

    匹配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.

    49700

    linux每日命令(35):grep命令

    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 文件读取出关键词内容

    1.5K31

    linux grep

    以递归方式查找符合条件文件 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 文件读取出关键词内容

    10K40

    安卓手机平板远程访问本地Linux环境code-server写代码

    前言 本文主要介绍如何在Linux Ubuntu系统安装code-server,并结合cpolar内网穿透工具配置公网地址,轻松实现使用安卓手机、平板等设备远程使用vscode开发写代码。...安卓平板测试访问 打开安卓浏览器,任意浏览器,输入上面的链接即可访问成功 5.固定域名公网地址 在cpolar内网穿透,因为我们刚刚创建隧道选择是免费随机临时隧道,它生成公网地址会在24小时内变化...,为了更加稳定访问,我们接下来把它配置成固定地址。...登录cpolar web ui管理界面,点击左侧仪表盘隧道管理——隧道列表,找到需要配置二级子域名隧道(本例为code-server隧道),点击右侧编辑 修改隧道信息,将二级子域名配置到隧道:...打开安卓浏览器输入上面的固定http链接即可访问成功 6.结语 在安卓使用vscode主要是连接一个远程code-server服务,code-server服务安装在什么系统,调用就是什么系统环境,

    11320

    物理内存管理

    前言: 书接上回《内存映射技术分析》,继续来分析一下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,其中一个分配出去,一起保存在2Mlist。时间长了,就会出现很多小块内存,就是所谓内存碎片。...当然,这个链表上pageorder都是0。 在linux-4.0.4/mm/page_alloc.c: ? order为0情况下,优先选择从pageset申请。

    2.6K70

    ‘匹配’究竟多重要-R(merge)|Excel(vlookup)

    当上游给我分析数据只有实验编号,而下游care却是真实患者信息时候;当然,在茫茫data中一直Ctrl+F、Ctrl+C、Ctrl+V,重复那么几百次也是可以做到;如果你真的这么做了,那么疯就是迟早事了...;vlookup啊,一个公式解决所有繁琐,Excel无尽宝藏真是值得我们探索!!!...当多个大名鼎鼎数据库都有自己独树一帜命名方式(ID转换这种事情简直是数据挖掘入门第一课),而我需要把它们一一配起来才能往下分析时候,R里merge简直是在这热不死人广东里如空调一样救命发明...lookup_value 检索时用来匹配值 table_array 需要匹配出结果范围 col_index_num 需要匹配出具体内容位于table_arraylookup_value后第几列...range_lookup 0(精确匹配)或1(近似匹配) $表示限制,放在行前面即行数不变,放在列前面同理; 第一公式写完后,选中,鼠标放在末尾有个+号,双击产生所有查询结果; ?

    1K20

    人脸识别种族偏见:黑黄错误率比白人高100倍 | 美官方机构横评189种算法

    (可戳量子位之前文章:为了不把黑人兄弟认作大猩猩,谷歌算法连真的大猩猩都不认识了) 检测结果 1、在一对一,相较于白人,亚裔和非裔的人脸识别错误率要高10到100倍。...4、不同国家开发算法表现不同。美国开发算法,亚裔、非裔和土著错误率很高。亚洲开发算法,白人和亚洲人错误率差距较小。...“偏见”还有长尾影响 根据人脸识别的使用场景和功能,检测分为一对一配和一对多匹配: 一对一配一般用于手机人脸解锁或护照检查。...一对一配出现错误可能会导致人脸无法解锁,给生活带来麻烦。但是一对多匹配错误可能后果更严重,就会让警察把无辜的人列入嫌疑名单。...美国俄勒冈州参议员Ron Wyden在一份声明说, 任何部署新技术公司或政府有责任仔细检查其产品是否存在偏见和歧视,至少要在软件彻底检查是否有Bug。

    84810

    学会这二十个正则表达式,能让你少些1000代码!

    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,可以用来快速查找相关语法。

    80870

    CSS快速入门(二)

    :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 匹配文档包含了浏览器标记语法错误那部分。

    47010

    scala快速入门系列【正则表达式】

    ---- 正则表达式 在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 = "

    58630

    sed与awk处理区间匹配问题总结---1

    space内容取回, 进行输出....我们需要处理,很多情况下是用"pattern"匹配出。如果我们需要处理匹配前一或者后一有什么办法呢?...根据上述对命令“n"讲解: /3/n, 表示当匹配到含有"3"这个时候, 执行命令n, 也就是把下一读入到pattern space 来替换掉当前含有"3"这一,然后执行下一条命令"/6/...b",很显然,对于含有"3"这一不匹配,所以这个语句不会执行,最后语句p ,没有执行条件,所以就打印了pattern space内容,而pattern space 内容本应该是含有"3"的当前行...在“/3/,/6/" 这个范围最后一出现了,对于"/3/n" 命令,显示不匹配,所以匹配到了"b" 这个命令.

    1.1K10

    9.3 grep(下)

    ,跟号前面的字符相关,可以是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

    97550

    JavaScript 正则表达式

    =========在 JavaScript ,RegExp 对象是一个预定义了属性和方法正则表达式对象 test() 方法是一个正则表达式方法。...test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配文本,则返回 true,否则返回 false ①实例:搜索字符串字符“e” 如果含有就返回true。...六、正则表达式方法exec() exec() 方法用于检索字符串正则表达式匹配。 该函数返回一个数组,其中存放匹配结果。...* 格式一:链接: https://pan.baidu.com/s/15gzY8h3SEzVCfGV1xfkJsQ 提取码: vsuw 复制这段内容后打开百度网盘手机App,操作更方便哦 * 格式二...shareid=179436&uk=3272055266 提取码: vsuw 复制这段内容后打开百度网盘手机App,操作更方便哦 * 匹配出下载地址和提取码,并且还支持如果没有提取码,也能匹配出下载链接

    96630

    Shell之讨厌正则

    转义之后代表着文本真正真实存在我们看到具体 . ? ---- 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正则整理。

    46530
    领券