①选中范围;②查找重复的文本内容,如"今天的大雾今天的大雾";③替换,替换内容"今天的大雾",全都替换、确定.
'\t'指的是file.csv不同列以'\t'分割,如果的是以其他符号分割,换成其她符号;
一般去重之前要进行排序
前半部分与命令1一样,后面加上| sort | uniq
前半部分与命令1一样,后面加上?|?grep -o 'neg'| wc -l
grep -o 'neg'就是取出取值为'neg'的行
wc -l 是计数有多少行
linux去重命令是什么呢?
在介绍uniq命令之前,我们先来新建在下面的案例中需要用到的文件/tmp/uniq.txt,内容如下
默认情况下uniq只会检索相邻的重复数据从而去重.在/tmp/uniq.txt中虽然"onmpw web site" 有三条,但是其中一条是和其他两条不相邻的,所以只去重了一条,同理"error php function"也是这种情况.
鉴于以上的检索机制,所以uniq一般情况下要和sort命令一块儿使用.
复制代码
# sort 1.txt | uniq
alpha css web
cat linux command
error php function
hello world
onmpw web site
recruise page site
repeat no data
wello web site
现在再看是不是所有的重复项都已经经过去重处理了.
好了,小试牛刀一把以后,下面我们开始对uniq命令的选项进行简单的介绍.
-c 统计每一行数据的重复次数
sort 1.txt | uniq -c
①. alpha css web
①. cat linux command
①. hello world
①. recruise page site
①. repeat no data
①. wello web site
我们看 "error php function"出现了两次,"onmpw web site"出现了三次.其余的都没有重复项所以为1.
-i 忽略大小写
在1.txt中添加一行数据 "Error PHP function"
cat 1.txt
Error PHP function
sort 1.txt | uniq –c
①. Error PHP function
我们看结果,uniq默认是区分大小写的.使用-i可以忽略掉大小写问题
sort 1.txt | uniq –c –i
现在再看是不是大小写已经忽略掉了.
-u 只输出没有重复的数据
sort 1.txt | uniq –iu
看到没,结果中的"error php function"和"onmpw web site"都没有被输出.
-w N 表示从第一个字符开始只检索N个字符来判重.
这里我们让uniq只对前两个字符进行检索,recruit 和 repeat前两个字符都是re,所以这两行也被认为是重复的.
-f N 表示略过前面N个字段,从第N+1个字段开始检索重复数据.以空格符或者tab键为分隔符.
要解决这个问题还需要在sort命令上着手.还记得sort命令的-k选项吗,没错,我们就用它来解决.
我们看,是不是解决了.
-s N表示略过前面N个字符,关于这个选项的例子我们这里就不再举了,该选项和-f N的用法差不多.只不过-f N是略过前面N个字段;-s是略过前面N个字符.
-d 只输出有重复项的第一条的数据.
-D 对于重复项全部输出
好了,关于uniq的选项的所有常用的命令已经都介绍完了.关于uniq更详细的信息可以使用命令info uniq.
sort 是将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,默认将他们按照升序输出
降序
在输出中去重
将排序结果输出到原文件
sort的默认输出是输出到标准输出,如果想把结果输出到文件,需要 sort file newfile,但是如果想把结果输出到原文件这样就不行了,这时就需要 使用sort -o
以数值来排序
-t 后面跟 分隔符
-k 后面跟数字,表示用第几列排序
我们可以看到,当baidu 和soho都是100的时候,baidu排在前面,当当前域按照默认规矩,是从第一个域开始进行升序排序,所以呢baidu排在了sohu前面.
其实-k 选项 功能很强大,语法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
-u只识别用-k设定的域,发现相同,就将后续相同的行都删除
但是这时候,却一行也没有删除.原来-u是会权衡所有-k选项,将都相同的才会删除,只要其中有一级不同都不会轻易删除的
可以用到b、d、f、i、n 或 r.
其中n和r你肯定已经很熟悉了.
b表示忽略本域的签到空白符号.
d表示对本域按照字典顺序排序(即,只考虑空白和字母).
f表示对本域忽略大小写进行排序.
i表示忽略"不可打印字符",只针对可打印字符进行排序.(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)