Linux命令:uniq命令和wc命令

1 uniq命令

1.1 uniq简介

uniq 命令用于检查及删除文本文件中重复出现的行列。它通过对输入文本进行比较,找出相邻的重复行,并只输出其中的一行。如果文件没有排序,uniq 默认只会删除相邻的重复行,不会删除不相邻的重复行。因此,通常在使用 uniq 之前,会先使用 sort 命令对文件进行排序。

1.2说明

使用:uniq [OPTION]… [INPUT [OUTPUT]]
常用参数:

  • -c:在每行前面显示该行重复出现的次数
  • -d:只输出重复的行,每个组打印一行
  • -D:打印所有重复的行
  • -f, --skip-fields=N:比较时会跳过前面N行
  • -i:比较时忽略大小写
  • -s, --skip-chars=N:比较时会跳过前面N个字符
  • -u:只显示唯一的一行
  • -z:行分隔符是NUL,而不是换行符
  • -w, --check-chars=N:只比较每行前N个字符,之后的字符不再比较
  • –help:查看帮助信息
  • –version:显示版本信息

1.3案例

先编写一个测试文件

root@con02:~# cat a
abcd
abcd
2374hd67
2374fb;ll
Abcd
abcd
2737834
ijnk
098j  dhyyi
7hyt  fhyyi
ijnk
2374fb;ll

root@con02:~#

1、默认输出

root@con02:~# uniq a
abcd
2374hd67
2374fb;ll
Abcd
abcd
2737834
ijnk
098j  dhyyi
7hyt  fhyyi
ijnk
2374fb;ll

root@con02:~#
统计行数
root@con02:~# uniq  -c a
      2 abcd
      1 2374hd67
      1 2374fb;ll
      1 Abcd
      1 abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~# cat a |uniq -c
      2 abcd
      1 2374hd67
      1 2374fb;ll
      1 Abcd
      1 abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1
# sort和uniq命令配合使用      
root@con02:~# sort a |uniq -c
      1
      1 098j  dhyyi
      2 2374fb;ll
      1 2374hd67
      1 2737834
      1 7hyt  fhyyi
      3 abcd
      1 Abcd
      2 ijnk
root@con02:~#

2、输出重复行

# -d 和 -D都是输出重复行
# -d:重复行只输出一次
# -D:输出所有重复行

root@con02:~# uniq -d a
abcd
root@con02:~# uniq -D a
abcd
abcd
root@con02:~#

3、比较一行中的部分字符

# -s:会跳过前面N个字符,只比较后面的字符
# -w:只比较前面N个字符,之后的字符不再比较

root@con02:~# uniq -s 7 -c a
      2 abcd
      1 2374hd67
      1 2374fb;ll
      4 Abcd
      2 098j  dhyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~# uniq -s 6 -c a
      2 abcd
      1 2374hd67
      1 2374fb;ll
      2 Abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1

root@con02:~# uniq -w 4 -c a
      2 abcd
      2 2374hd67
      1 Abcd
      1 abcd
      1 2737834
      1 ijnk
      1 098j  hyyi
      1 7hyt  hyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~# uniq -w 5 -c a
      2 abcd
      1 2374hd67
      1 2374fb;ll
      1 Abcd
      1 abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~#

4、忽略大小写

root@con02:~# uniq -i -c a
      2 abcd
      1 2374hd67
      1 2374fb;ll
      2 Abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~#

5、只显示唯一的行

root@con02:~# uniq -u -c a
      1 2374hd67
      1 2374fb;ll
      1 Abcd
      1 abcd
      1 2737834
      1 ijnk
      1 098j  dhyyi
      1 7hyt  fhyyi
      1 ijnk
      1 2374fb;ll
      1
root@con02:~#

2.4 uniq和sort命令配合使用

1、文本统计

有一个 a 文本,要求将所有包含abcd和2374的字符过滤出来,并统计这些字符重复出现的次数。

cat a |grep -iE "abcd|2374"|sort|uniq -c|sort  -nr
      2 abcd
      2 2374fb;ll
      1 abcdNUL
      1 Abcd
      1 2374hd67

# grep -iE "abcd|2374" : 先过滤包含abcd或2374的字符
# sort:进行过滤
# uniq -c 显示该行重复次数
# sort -nr 按照数值从大到小排序

2、统计IP连接数并排序

netstat -antp I grep ESTABLISHED|grep -E "([0-9]{1,3}.){3}[0-9]{1,3}" | awk '{print $5}' | cut -d ":" -f1 | sort -n | uniq -c | sort -nr
      5 0.0.0.0
      3 127.0.0.1
      ...

2 wc命令

2.1 wc简介

wc 命令可以统计文本文件中的字符数、单词数和行数。它对于快速获取文件的统计信息非常有用,比如检查文件的大小、评估文本内容的长度等。wc 命令可以处理各种类型的文本文件,包括纯文本文件、源代码文件等。

2.2 说明

使用:

  • wc [OPTION]… [FILE]…
  • wc [OPTION]… --files0-from=F

常用参数:

  • -c, --bytes:输出字节数
  • -m, --chars:输出字符数
  • -l, --lines:输出行数
  • -L, --max-line-length:显示最长行的长度
  • -w, --words:输出单词数

2.3 案例

测试文件

root@con02:~# cat a
abcd
abcd
2374hd67
2374fb;ll
Abcd
abcdNUL
2737834
ijnk
098j  dhyyi
7hyt  fhyyi
ijnk
2374fb;ll

root@con02:~#

1、默认输出

wc a
13 14 95 a
# 输出内容分别为:行数 字数 字节数 文件
# 如果查看多个文件,会在最后输出每一项的总和
 wc a /etc/passwd
  13   14   95 a
  36   52 1958 /etc/passwd
  49   66 2053 total
输出行数
root@con02:~# wc -l a
13 a
root@con02:~#

2、输出字节、字符数、单词数

# 输出字节数
root@con02:~# wc -c a
95 a
# 输出字符数
root@con02:~# wc -m a
95 a
# 输出单词数
root@con02:~# wc -w a
14 a
root@con02:~#
输出最长行的长度
root@con02:~# wc -L a
11 a
root@con02:~#

总结

sort命令、wc命令、uniq命令一般都会组合配合使用,再配和grep、awk和cut命令,在实际查询中很常用,尤其是在shell脚本中,所以这几个命令都需要掌握好。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe rmdir.exe addftinfo.exe grotty.exe rmt.exe addr2line.exe gzip.exe run.exe alternatives.exe head.exe runcon.exe ar.exe hostid.exe rxvt.exe arch.exe hostname.exe scp.exe as.exe hpftodit.exe sdiff.exe ascii.exe i686-pc-cygwin-gcc-3.4.4.exe sed.exe ash.exe i686-pc-cygwin-gcc-3.exe semstat.exe awk.exe i686-pc-cygwin-gcc.exe semtool.exe banner.exe id.exe seq.exe base64.exe indxbib.exe setfacl.exe basename.exe info.exe setmetamode.exe bash.exe infokey.exe sftp-server.exe bigram.exe install-info.exe sftp.exe bunzip2.exe install.exe sh.exe bzcat.exe ipcrm.exe sha1sum.exe bzip2.exe ipcs.exe sha224sum.exe bzip2recover.exe join.exe sha256sum.exe c++filt.exe kill.exe sha384sum.exe cat.exe ld.exe sha512sum.exe cc-3.exe less.exe shmtool.exe cc.exe lessecho.exe shred.exe chcon.exe lesskey.exe shuf.exe chgrp.exe link.exe size.exe chmod.exe lkbib.exe sleep.exe chown.exe ln.exe soelim.exe chroot.exe locate.exe sort.exe cksum.exe login.exe split.exe cmp.exe logname.exe ssh-add.exe code.exe lookbib.exe ssh-agent.exe comm.exe lpr.exe ssh-keygen.exe conv.exe ls.exe ssh-keyscan.exe cp.exe make.exe ssh-keysign.exe cpp-3.exe makeinfo.exe ssh.exe cpp.exe man.exe sshd.exe crypt.exe man2html.exe ssp.exe csplit.exe manpath.exe stat.exe cut.exe md5sum.exe strace.exe cygcheck.exe mkdir.exe strings.exe cygpath.exe mkfifo.exe strip.exe cygrunsrv.exe mkgroup.exe stty.exe cygserver.exe mknod.exe su.exe cygstart.exe mkpasswd.exe sum.exe d2u.exe mkshortcut.exe svn.exe date.exe mktemp.exe svnadmin.exe dd.exe mount.exe svndumpfilter.exe df.exe msgtool.exe svnlook.exe diff.exe mv.exe svnsync.exe diff3.exe nc.exe svnversion.exe dir.exe ngettext.exe sync.exe dircolors.exe nice.exe tac.exe dirname.exe nl.exe tail.exe dlltool.exe nm.exe tar.exe dllwrap.exe nohup.exe tbl.exe dos2unix.exe objcopy.exe tee.exe du.exe objdump.exe test.exe dump.exe od.exe texindex.exe dumper.exe oldfind.exe tfmtodit.exe echo.exe openssl.exe touch.exe editrights.exe passwd.exe tr.exe egrep.exe paste.exe troff.exe env.exe pathchk.exe true.exe envsubst.exe peflags.exe tsort.exe eqn.exe perl.exe tty.exe expand.exe perl5.10.0.exe u2d.exe expr.exe pfbtops.exe umount.exe factor.exe pgawk-3.1.6.exe uname.exe false.exe pgawk.exe unexpand.exe fgrep.exe pic.exe uniq.exe find.exe pinky.exe unix2dos.exe fmt.exe post-grohtml.exe unlink.exe fold.exe pr.exe unprotoize-3.exe frcode.exe pre-grohtml.exe unprotoize.exe gawk-3.1.6.exe printenv.exe users.exe gawk.exe printf.exe vdir.exe gcc-3.exe protoize-3.exe vim.exe gcc.exe protoize.exe wc.exe gcov-3.exe ps.exe which.exe gcov.exe ptx.exe who.exe getclip.exe putclip.exe whoami.exe getfacl.exe pwd.exe windmc.exe gettext.exe ranlib.exe windres.exe gkill.exe readelf.exe xargs.exe gprof.exe readlink.exe xmlwf.exe grep.exe readshortcut.exe xxd.exe grn.exe realpath.exe yes.exe grodvi.exe rebase.exe zdump.exe groff.exe refer.exe zic.exe
linux命令大全,中文版本 Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio dump gunzip gzexe gzip lha restore tar unarj unzip zip zipinfo 文件管理 diff diffstat file find git gitview ln locate lsattr mattrib mc mcopy mdel mdir mktemp mmove mread mren mshowfat mtools mtoolstest mv od paste patch rcp rhmask rm slocate split tee tmpwatch touch umask whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon repquota rmdir rmt stat tree umount 磁盘维护 badblocks cfdisk dd e2fsck ext2ed fdisk fsck.ext2 fsck fsck.minix fsconf hdparm losetup mbadblocks mformat mkbootdisk mkdosfs mke2fs mkfs.ext2 mkfs mkfs.minix mkfs.msdos mkinitrd mkisofs mkswap mpartition sfdisk swapoff swapon symlinks sync 系统设置 alias apmd aumix bind chkconfig chroot clock crontab declare depmod dircolors dmesg enable eval export fbset grpconv grpunconv hwclock insmod kbdconfig lilo liloconfig lsmod minfo mkkickstart modinfo modprobe mouseconfig ntsysv passwd pwconv pwunconv rdate resize rmmod rpm set setconsole setenv setup sndconfig SVGAText Mode timeconfig ulimit unalias unset 系统管理 adduser chfn chsh date exit finger free fwhois gitps groupdel groupmod halt id kill last lastb login logname logout logrotate newgrp nice procinfo ps pstree reboot renice rlogin rsh rwho screen shutdown sliplogin su sudo suspend swatch tload top uname useradd userconf userdel usermod vlock w who whoami whois 文档编辑 col colrm comm csplit ed egrep ex fgrep fmt fold grep ispell jed joe join look mtype pico rgrep sed sort spell tr uniq wc 网络通讯 dip getty mingetty ppp-off smbd(samba daemon) telnet uulog uustat uux cu dnsconf efax httpd ifconfig mesg minicom nc netconf netconfig netstat ping pppstats samba setserial shapecfg(shaper configuration) smbd(samba daemon) statserial(status ofserial port) talk tcpdump testparm(te

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值