首页
学习
活动
专区
工具
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 打印文本部分行内容(前几行,指定,中间几行,跨行,奇偶,后几行,最后一,匹配

背景 打印对账文件最后一汇总信息,通过钉钉定时发送到运维群。顺便总结下 Linux 打印文本部分行内容的各种方法。...测试文本 # 生成测试文本内容 $ seq -f "%02g daodaotest" 1 10 > test.txt # 查看测试文本内容,并显示行号 $ cat -n test.txt 1...i' test.txt ## m~np:m 表示起始行;~2 表示:步长 $ sed -n '1~2p' test.txt ## 先打印第 1 ,执行 n 命令读取当前行的下一,放到模式空间,后面再没有打印模式空间操作...,所以只保存不打印,同等方式继续打印第 3 。...# tail 打印最后一内容 $ tail -n 1 test.txt # sed 打印最后一内容 $ sed -n '$p' test.txt # awk 打印最后一内容 $ awk 'END

12.6K32

文本查询TextQuery类文件编写

读取用户指定的任意文本文件,然后允许用户从该文件中查找单词。查询的结果是该单词出现的次数,并列出每次出现所在的。如果某单词在同一中多次出现,程序将只显示该行一次。...()) //如果行号没有超出范围,返回vector里的某个元素(一文本) return lines_of_text[line]; throw std::out_of_range...word:word+ending; //多个单词,后缀加s } //打印某字符对应所有文本函数 void print_results(const set &...<< endl; return EXIT_FAILURE; } textquery tq; //定义文本查询对象tq tq.read_file(infile);...返回其所有行号set print_results(locs,s,tq); //打印tq对象,查询字符串s下对应所有的行文本 } return 0; } 编译运行结果 g

1K20

Linux文本处理

cat命令 cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。...cat 文件名 ------查看文本内容 image.png cat -n 文件名 ---------- 显示行号。...image.png cat -A 文件名 ---------- 查看文本中的所有隐藏符号,包括回车符($)、Tab 键(^I)等 image.png more命令 more 命令可以分页显示文本文件的内容...不仅如此,为了方面用户浏览文本内容,less 命令还提供了以下几个功能: 使用光标键可以在文本文件中前后(左后)滚屏; 用行号或百分比作为书签浏览文件; 提供更加友好的检索、高亮显示等操作; 兼容常用的字处理程序...查看 文本最后 3 的数据内容。 image.png

2K20

面向过程与面向对象_文本查询程序

之前总是习惯编写面向过程的程序,没有面向对象的思维,用这个文本查询程序作为一个面向对象的小练习. 用面向过程的方式很快就写完了,用面向对象实现的时候还是遇到不少小问题....这个小程序实现了”打印文本中存在某单词所在的”的功能: root@yifei: ./textquery data.txt hello 查询到3个hello....面向过程实现文本查询程 #include #include #include #include #include <string...-那一内容的map 3.查询含有结果的pair保存到map2中 4.输出map2的内容 */ //变量定义 map misfile; map<int,string...所有的内容 vector vires; 只标记拥有所查询单词的行号 public: 空构造函数 构造函数 打印结果的友元函数 */ int main(

39510

Linux文本处理

grep 最常用的正则查找指令,比如结合tail将匹配正则的文件输出 tail 文件名 | grep -E "正则表达式" > "结果输出文件名" sed sed适合用于对大文件进行正则替换输出 其处理是实时显示...(从文件读取一匹配一,结果输出) 不会修改原文件(添加g标记为全部替换,不添加为每行替换首个匹配项) sed 's/正则表达式/替换文本/g' 如果需要保存输出到文件可以类似上面使用重定向输出符...sed 's/正则表达式/替换文本/g' > "输出文件名" find find指令用于通过正则表达式检索某个文件名所在的完整路径 #查找当前目录及其所有子目录下,名称符合对应正则表达式的文件名 find...-name "正则表达式" 还可以结合xargs和grep对匹配的文件的内容进行正则检索 xargs会将文件内容处理为按输入到缓冲区 find ....带双引号的字符串会作为多个打印的拼接符,并将引号中内容一并输出 对于比较长的awk指令,一般写到文件通过shell执行(命令行需要为单行,awk不需要严格缩进,由{}控制作用域范围) 以下为结合文件,按读取作为输入

1.3K20
领券