shell脚本去重的几种方法

  • 测试文件
[[email protected] ~]# cat >test
jason
jason
jason
fffff

按 Ctr + D保存

1、sort -u

[[email protected] ~]# sort -u test
fffff
jason

2、uniq

[[email protected] ~]# uniq test
jason
fffff
jason

由此可见,uniq需要先排序后才能去重

3、sort、管道和uniq结合运用

  •   去除重复并保留一份重复的数据
[[email protected] ~]# sort test|uniq
fffff
jason
  •   去除所有重复的行(不保留重复的行),并计算行数
[[email protected] ~]# sort test|uniq -uc
      1 fffff
  •   找出所有重复的行,并计算行数
[[email protected] ~]# sort test|uniq -dc
      4 jason
  •   根据某个字段去重

  将原有数据改为

[[email protected] ~]# more test
jason 1
jason 2
jason 1
fffff 2
jason 3
[[email protected] ~]# sort -k 1,1 -u test
fffff 2
jason 1

  man sort查看sort的用法,-k参数是这么描述的:

    -k, --key=POS1[,POS2]
    start a key at POS1 (origin 1), end it at POS2 (default end of line)

  也就是说-k哪几个列进行排序,pos1是开始列,pos2是结束列

时间: 2024-08-27 19:15:55

shell脚本去重的几种方法的相关文章

Linux中执行shell脚本命令的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

shell脚本执行的几种方式

执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 [[email protected] tmp]# cd /tmp [[email protected] tmp]# ./ceshi.sh 脚本执行成功 2.绝对路径方式 [[email protected] tmp]# /tmp/ceshi.sh 脚本执行成功 3.bash命令调用 [[email protected] /]# bash /tmp/ceshi.sh 脚本执行成功 4.. (空格)  相对或绝对方式 [[em

DB2去重的几种方法

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 例如下表:table1 用户办理套餐的记录表,可看出,user_id=33333有两条完全重复的记录,user_id=11111的tc_name和open_date不一样 1.对于完全重复的记录,直接使用distinct 即可 select distinct user_id,name,tc_name,open_date from tabl

Javascript数组去重的几种方法

Javascript数组去重的几种方法 新建空数组,通过for...of(ES6)循环遍历,通过indexOf判断元素是否在新数组中存在,将不存在的(indexOf(n)==-1)元素push到新数组中: let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_indexOf(originalArr){ let newArr = []; for(n of originalArr){ if(newArr.in

学习Linux shell脚本中连接字符串的方法

这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"=" echo $value2 把要添加的字符串变量添加{},并且需要把$放到外面. 这样输出的结果是:home=,也就是说连接成功. 又如代码如下: [[email protected] sh]# var1=http://www.3lian.com/etc/ [[email protected] s

json 脚本入库的几种方法

json 脚本入库的几种方法,见代码: #-*- encoding: utf-8 -*- #第一种mongodb入库 # from pymongo import * # import json # conn = MongoClient('127.0.0.1',27017) # db = conn.p2p # content = open('static/data/text.json','r',encoding='utf-8',errors='ignore') # data = json.load

上传图片shell绕过过滤的几种方法

一般网站图片上传功能都对文件进行过滤,防止webshelll写入.但不同的程序对过滤也不一样,如何突破过滤继续上传? 本文总结了七种方法,可以突破! 1.文件头+GIF89a法.(php)//这个很好理解,直接在php马最前面写入gif89a,然后上传dama.php 2.使用edjpgcom工具向图片注入代码.(php)//edjpgcom修改,加入php一句话保存为dama.php 3.cmd命令下copy 图片.GIF+shell.php webshell.php (php) //估计和1

shell脚本之grep的使用方法

笔者最近在使用shell脚本中处理字符串,因此使用了大量shell脚本中的四剑客(awk,grep,sed,cut)而其中使用最多的两种方法就是grep和awk,因此想总结整理一下. 一.grep的意义 二.grep的基本用法 三.awk的意义 四.awk的基本用法 五.实例说明两者怎么用 一.grep的意义 首先,grep是用来处理行数据的基本命令集,简单来说它的使用意义就在于当你想要找到某个文件中的某个字符串以及它相关联的信息时(比如说行数),那么你就需要这个命令了. 二.grep的基本用法