`
wx1569466809
  • 浏览: 72125 次
文章分类
社区版块
存档分类
最新评论

常用文本工具cut、wc、sort、uniq、tr

 
阅读更多

8.10 shell特殊符号&cut命令

特殊符号

  • “*” 代表零个或多个字符
  • “?” 代表一个字符
  • “#” 注释符号
  • “\” 脱意符号
  • “|” 管道符
  • “$” 该符号与“!”合用“!$”表示上一条命令中的最后一个变量
  • “;” 分隔符,在一行中运行两个及两个以上的命令时使用
  • “~” 用户的家目录(root用户“/root”,普通用户“/home/username”)
  • “&” 如果想把一条命令直接放到后台运行的话,可以在命令行加上这个符号(通常用于运行时间非常长的命令)
  • “[]” 中括号中间为字符组合,代表中间字符中的任意一个。

cut命令

>cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令。
说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。

语法: cut -d ‘分隔符’ [-cf] n [filename] (这里n是正整数)
-d:指定分隔符号
-f:指定第几段
-c:后面只有一个数字表示截取第几个字符;后面跟一个数字区域,表示截取从几到几(该选项不和d,f共同使用)

[root@adai003 tmp]# cut -c1 1.txt |head -n2
r
b
[root@adai003 tmp]# cut -c1,3 1.txt |head -n2
ro
bn
[root@adai003 tmp]# cut -f1,3 -d ':' 1.txt |head -n2
root:0
bin:1
[root@adai003 tmp]# cut -f1-3 -d ':' 1.txt |head -n2
root:x:0
bin:x:1

8.11 sort、wc、uniq命令

sort命令

>sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

语法: sort [-t 分隔符] [options] [filename]
Options:
-t:指定分隔符
-n:使用纯数字排序(系统默认所有字母为0)
-r:反向排序
-u:=unique 去重复
-kn1,n2:由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序(n1 < n2)
sort不加任何选项,则从首字符向后,依次以ASCⅡ码值进行比较,最后将它们按升续输出。

[root@adai003 tmp]# head -n3 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@adai003 tmp]# head -n3 1.txt |sort
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

wc命令

>wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数。

语法: wc [options] [filename]
Options:
-l:=line 统计行数
-m:=member 统计字符数
-w:=Word 统计词数

[root@adai003 tmp]# wc -l !$
wc -l 2.txt
2 2.txt
[root@adai003 tmp]# wc -m 2.txt
10 2.txt
[root@adai003 tmp]# cat !$
cat 2.txt
1234
qwer
[root@adai003 tmp]# cat -A 2.txt
1234$
qwer$
[root@adai003 tmp]# wc -w 2.txt
4 2.txt
[root@adai003 tmp]# cat 2.txt
1234 456 789,10
qwer

说明: wc -m会统计文件内所有字符,包括隐藏的换行符“&”;wc -w是以空格作为分隔符进行词组统计的。

uniq命令(unique)

>uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用(即:去重复)。

语法: uniq [options] [filename]
Options:
-c:=count 在每列旁边显示该行重复出现的次数

[root@adai003 tmp]# cat !$
cat 2.txt
1234
456 789,10
1234
qwer
456
[root@adai003 tmp]# uniq -c 2.txt
      1 1234
      1 456 789,10
      1 1234
      1 qwer
      1 456
[root@adai003 tmp]# sort 2.txt |uniq -c
      2 1234
      1 456
      1 456 789,10
      1 qwer

说明: 直接使用uniq命令,2.txt内容显示并没有变化,使用sort排序后再用uniq命令,重复行被合并,即:在对文件进行去重之前需要先进行排序!

8.12 tee、tr、split命令

tee命令

>tee命令用于将数据重定向到文件,会删除文件内原有内容,与“>”不同的是,tee会把定向的文件内容显示出来。

语法: tee [options] [filename]
Options:
-a:向文件中重定向时使用追加模式(=“>>”)

[root@adai003 tmp]# cat 3.txt
00000000000
[root@adai003 tmp]# sort 2.txt |uniq -c |tee 3.txt
      2 1234
      1 456
      1 456 789,10
      1 qwer
[root@adai003 tmp]# cat 3.txt
      2 1234
      1 456
      1 456 789,10
      1 qwer
      [root@adai003 tmp]# sort 2.txt |uniq -c |tee -a 3.txt
      2 1234
      1 456
      1 456 789,10
      1 qwer
[root@adai003 tmp]# cat 3.txt
      2 1234
      1 456
      1 456 789,10
      1 qwer
      2 1234
      1 456
      1 456 789,10
      1 qwer

tr命令

>tr命令可以对来自标准输入的字符进行替换、压缩和删除,它可以将一个字符变成另一个字符,也可以将一组字符变成另一组字符。

语法: tr [源字符] [目标字符]

[root@adai003 tmp]# echo "adailinux" |tr 'a' 'A'
AdAilinux   替换一个字符
[root@adai003 tmp]# echo "adailinux" |tr '[al]' '[AL]'
AdAiLinux   替换多个字符
[root@adai003 tmp]# echo "adailinux" |tr '[a-z]' '[A-Z]'
ADAILINUX

split命令

>split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

语法: split [options] [filename]
-b:指定每一输出档案的大小,默认单位为 byte,可自定义单位,如 split -b 100M filename
-l:指定每一个输出档案的行数多少
eg1: 指定大小

[root@adai003 tmp]# split -b 100 1.txt
[root@adai003 tmp]# ls
xaa
xab
xac
xad
[root@adai003 tmp]# rm -rf x*
[root@adai003 tmp]# split -b 100 1.txt adai.  
可以指定文件前缀!
[root@adai003 tmp]# ls
adai.aa 
adai.ab
adai.ac
adai.ad

eg2: 指定行数

[root@adai003 tmp]# wc -l 1.txt
20 1.txt
[root@adai003 tmp]# split -l 5 1.txt
[root@adai003 tmp]# ls
xaa
xab
xac
xad
[root@adai003 tmp]# wc -l x*
  5 xaa
  5 xab
  5 xac
  5 xad
 20 总用量

8.13 shell特殊符号(下)

命令连接符: “||”、“&&”、“;”

  • command1 ; command2 : 不管command1是否执行成功都会执行command2
  • command1 && command2 : 只有command1执行成功后才会执行command2
  • command1 || command2 : 表示command1执行成功后,command2不执行,否则执行command2

转载于:https://my.oschina.net/1995blog/blog/1593430

分享到:
评论

相关推荐

    史上最全的 Linux Shell 文本处理工具集锦.doc

    本文将深入讲解一些最常用的Shell工具,包括find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed和awk,以及如何利用它们来处理文本。 ### 01 find - 文件查找 `find`命令用于在文件系统中查找符合特定条件的...

    windows上可直接使用的awk、sed、grep等文本处理命令和彩色显示echo命令(from.Cygwin).zip

    包含命令:awk、cat、cut、diff、echo、gawk、grep、head、sed、sort、tac、tail、tr、uniq、wc 可以在windows上cmd窗口显示彩色文字,用法:echo.exe -e "\033[32;1mGREEN\033[0m

    Linux文本处理命令合集

    - **awk** 是一个强大的文本分析工具,能够处理复杂的文本处理任务。 - 内置变量: - `NR`:记录当前处理行的行号。 - `NF`:记录当前处理行的字段数量。 - `$0`:记录当前处理行的文本内容。 - `$1`:记录当前...

    Unix for poets

    文档中介绍了 Unix 中常用的几种文本处理工具,它们是: - `grep`:用于搜索文本中的模式,支持正则表达式。 - `sort`:对文本行进行排序。 - `uniq –c`:统计并显示重复行的数量。 - `tr`:字符转换工具,常用于...

    Linux课堂笔记.pdf

    一、操作系统概述 1、 操作系统 2、 不同应用利于的主流操作系统二、系统安装 1、安装VM虚拟机 ...2.8.6 sort命令 2.8.7 wc命令 2.8.8 uniq命令 2.8.9 tee命令 2.8.10 tr命令 2.8.11 split命令 2.8.12 awk命令

    Shell脚本学习指南之文本处理工具

    Shell脚本学习中,文本处理工具是不可或缺的一部分,它们能够帮助我们高效地处理文本数据,进行排序、去重、...在实际应用中,还可以结合其他命令如`grep`、`cut`、`tr`等进行组合使用,以满足更丰富的文本处理需求。

    Unix工具集for Windows

    mv,mvdir,nl,od,paste,patch,pathchk,pclip,pr,printenv,printf,pwd,recode,rename.pl,rm,rman,rmdir,sdiff,sed,seq,shar,sleep,sort,split,su,sum,sync,tac,tail,tar,tee,test,touch,tr,type,uname,unexpand,uniq,...

    Linux最常用 150 个命令汇总

    `vi` 和 `vim` 是Linux中最常见的文本编辑器之一,支持多种编辑模式,是编写和编辑文本文件的强大工具。 #### 文件压缩及解压缩命令(4个) 1. **tar** - **功能说明**:打包压缩。`tar` 命令是Linux中最重要的...

    第三周-作业.docx

    对于问题3,使用`netstat -nt`获取网络状态,`tr -s ' ' :`将空格替换为":",`cut -d: -f6`提取第六字段(IP地址),`uniq -c`统计唯一IP出现的次数,最后`sort -nr`按降序排列。 在问题4和5中,我们看到了如何编写...

    ls,cp等源码包Coreutils

    basename dd fmt logname pathchk shred touch wc cat df fold ls pinky sleep tr who chgrp dir groups md5sum pr sort true whoami chmod dircolors head mkdir printenv split tsort yes chown dirname hostid ...

    linux常用命令.docx

    - `tr`:替换文本中的字符,如 `tr 'A-Z' 'a-z' &lt; input.txt &gt; output.txt`。 - `wc`:统计文件的行数、字数和字节数。 - `stat`:查看文件的元信息,如修改时间、大小等。 - `grep`:按行匹配文本,如 `grep '...

    linux文件管理 .pdf

    - sort命令用于对文本文件中的行进行排序。 - uniq命令用于从文本文件中删除重复行。 - tr命令用于替换或删除字符。 - wc命令用于统计文件中的行数、字数或字符数。 接下来,文件系统的高级管理技巧也是需要掌握的...

    linux常用命令源码(ls,cp,chmod,df等一百多个命令)

    linux下大部分常用命令源码,偶正要开始学习-_- base64.c basename.c c99-to-c89.diff cat.c chcon.c chgrp.c chmod.c chown.c chown-core.c chown-core.h chroot.c cksum.c comm.c copy.c cp.c cp-hash.c csplit.c ...

    LINUX与UNIX SHELL编程指南

    书中可能会涵盖剪切、复制、粘贴、查找替换、格式转换等功能,如vi或vim编辑器的使用,wc用于计算字符、单词和行数,tr和cut用于字符处理,以及sort、uniq和join用于数据排序和合并。这些工具对于处理大量文本数据...

    Linux常用命令全集

    `tr [选项] 字符集1 字符集2`,用于文本转换。 - **expr**:计算字符串表达式的值。`expr [选项] 表达式`,用于数值运算。 - **uniq**:从排序文件中删除重复行。`uniq [选项] 文件`,用于数据清洗。 - **wc**:显示...

    阮一峰 Bash 脚本教程.pdf

    还提供了Shell的命令如cat、alias、awk、cal、cat、clear、cut、date、df、du、echo、grep、export、file、find、fmt、gunzip、gzip、kill、killall、last、lp、lpq、lpr、ls、ln、ls、ps、pwd、sed、sort、tr、...

    Linux常用命令集

    ### Linux常用命令集详解 #### 引言 随着信息技术的发展,Linux作为一种开源的操作系统,在服务器领域及开发环境中占据了举足轻重的地位。相比于Windows,Linux以其稳定性和安全性著称,并且具备丰富的命令行工具...

    Linux培训系列第二讲(1).pdf

    - **tr、sed、awk**:强大的文本转换和分析工具。 - **od、split、fmt**:二进制数据展示、文件分割和文本格式化。 - **paste、join、tee**:合并、关联和复制输出。 这些知识点不仅覆盖了Linux系统的基础操作,还...

    linux运维笔记:最常用的150个命令.docx

    10. sort命令:对文件的文本内容排序。 11. uniq命令:去除重复行。 12. wc命令:统计文件的行数、单词数或字节数。 13. iconv命令:转换文件的编码格式。 14. dos2unix命令:将DOS格式文件转换成UNIX格式。 15. ...

Global site tag (gtag.js) - Google Analytics