文件及内容处理 - wc、tr

1. wc:统计文件的行数、单词数或字节数

wc命令的功能说明

wc 命令用于计算字数。利用 wc 指令我们可以计算文件的字节数,字数,或是列数,若不指定文件名称,或是所给予的文件名为 “ - ”,则 wc 指令会从标准输入设备读取数据。

wc命令的语法格式

wc [OPTION]... [FILE]...
wc [-clw] [ - help] [ - version] [文件...]

wc命令的选项说明

wc 选项用的不多,表1为 wc 命令的参数及说明,

表1: wc命令的参数及说明

参数选项 解释说明
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。
--help 在线帮助。
--version 显示版本信息。

wc命令的实践操作

范例1: 在默认的情况下,wc 将计算指定文件的行数,字数,以及字节数使用的命令为:

--------------------------------------------------------------
==>命令如下<==
--------------------------------------------------------------
wc testfile

--------------------------------------------------------------
==>查看testfile的文件的内容<==
--------------------------------------------------------------
[root@nfs01 /data]# cat testfile
Linux网络变得越来越普遍,但是精简往往被忽视了
问题。不幸的是,在今天的环境中,所有网络都是潜在的黑客目标,
从秘密军事研究网络到小型家庭局域网。
Linux Network Securty专注于在网络环境中保护Linux,其中
需要考虑整个网络的安全性而不仅仅是孤立的机器。
它使用理论和实践技术的组合来教授管理员如何安装和
使用安全应用程序,以及应用程序如何工作以及它们为什么是必要的。

--------------------------------------------------------------
==>使用wc统计,结果如下<==
--------------------------------------------------------------
[root@nfs01 /data]# wc testfile
  7   9 530 testfile

其中,3个数字分别表示 testfile 文件的行数,单词数,以及该文件的字节数。如果想同时统计多个文件的信息,例如同时统计 testfile 的,testfile_1testfile_2,可使用如下命令:

--------------------------------------------------------------
==>统计三个文件的信息 <==
--------------------------------------------------------------
wc testfile testfile_1 testfile_2

--------------------------------------------------------------
==>输出结果如下<==
--------------------------------------------------------------
wc testfile testfile_1 testfile_2#统计三个文件的信息
3 92 598 testfile#第一个文件行数为3,单词数92,字节数598
9 18 78 testfile_1#第二个文件的行数为9,单词数18,字节数78
3 6 32 testfile_2#第三个文件的行数为3,单词数6,字节数32
15 116 708总用量#三个文件总共的行数为15,单词数116,字节数708

范例2: 查看 /etc/passwd 有多少用户

--------------------------------------------------------------
==>命令如下<==
--------------------------------------------------------------
cat /etc/passwd
cat /etc/passwd|wc -l
cat /etc/passwd|wc -L

--------------------------------------------------------------
==>源文件内容<==
--------------------------------------------------------------
root@nfs01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldboy:x:1000:1000::/home/oldboy:/bin/bash
ntp:x:38:38::/etc/ntp:/sbin/nologin

--------------------------------------------------------------
==>统计行数<==
--------------------------------------------------------------
[root@nfs01 ~]# cat /etc/passwd|wc -l
22

--------------------------------------------------------------
==>统计最长<==
--------------------------------------------------------------
[root@nfs01 ~]# cat /etc/passwd|wc -L
99

2. tr:替换或删除字符

tr命令的功能说明

tr命令从标准输入中替换、缩减或者删除字符、并将结果写到标准输出,Linux里严格区分大小写。所有字符都尽量加双引号。

tr命令的语法格式

tr [-cdst] [ - help] [ - version] [第一字符集] [第二字符集]
tr [选项] ... SET1 [SET2]

tr命令的选项说明

tr 选项用的不多,表1为 tr 命令的参数及说明,表2为tr 字符集合的范围说明

表1: tr 命令的参数及说明

参数选项 解释说明
-c,--complement 反选设定字符。也就是符合SET1的部份不做处理,不符合的剩余部份才进行转换
-d, - delete 删除指令字符
-s, - squeeze-repeats 缩减连续重复的字符成指定的单个字符
-t, - struncate-set1 削减SET1指定范围,使之与SET2设定长度相等
--help 显示程序用法信息
--version 显示程序本身的版本信息

表2: tr 字符集合的范围说明

参数选项 解释说明
 NNN 八进制值的字符NNN(1到3为八进制值的字符)
\ 反斜杠
 a Ctrl-G铃声
 b Ctrl-H退格符
 f Ctrl-L走行换页
 n Ctrl-J新行
 r  n
 t Ctrl-I tab键
 v Ctrl-X水平制表符
CHAR1-CHAR2 字符范围从CHAR1到CHAR2的指定,范围的指定以ASCII码的次序为基础,只能由小到大,不能由大到小。
[CHAR *] 这是SET2专用的设定,功能是重复指定的字符到与SET1相同长度为止
[CHAR * REPEAT] 这也是SET2专用的设定,功能是重复指定的字符到设定的REPEAT次数为止(REPEAT的数字采8进位制计算,以0为开始)
[:alnum:] 所有字母字符与数字
[:alpha:] 所有字母字符
[:blank:] 所有水平空格
[:cntrl:] 所有控制字符
[:digit:] 所有数字
[:graph:] 所有可打印的字符(不包含空格符)
[:lower:] 所有小写字母
[:print:] 所有可打印的字符(包含空格符)
[:punct:] 所有标点字符
[:space:] 所有水平与垂直空格符
[:upper:] 所有大写字母
[:xdigit:] 所有16进位制的数字
[= CHAR =] 所有符合指定的字符(等号里的CHAR,代表你可自订的字符)

tr命令的实践操作

实践文本如下:

--------------------------------------------------------------
==>命令如下<==
--------------------------------------------------------------
cat oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448

not 4900000448
my god ,i am not oldbey,but OLDBOY!

--------------------------------------------------------------
==>演示如下<==
--------------------------------------------------------------
[root@oldboyedu  ~]# cat oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448

not 4900000448
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu  ~]#

范例1: 将文件中出现的 abc替换为 xyz

[root@oldboyedu  ~]# tr 'abc' 'xyz' < oldboy.txt
                            #tr命令接文件比较特殊,需要输入重定向符号“<”
I xm oldyoy texzher!
I texzh linux.

I like yxdminton yxll,yillixrd yxll xnd zhinese zhess!
my ylog is http://oldyoy.ylog.51zto.zom
our site is http://www.etixntixn.org
my qq num is 49000448

not 4900000448
my god ,i xm not oldyey,yut OLDBOY!
[root@oldboyedu  ~]#

说明:凡是在文本中出现的a转换为xb换换为yc转换为z,而不是仅仅将字符串abc替换为字符串xyz

范例2: 使用 tr 命令 统一字母大小写。

[root@oldboyedu  ~]# tr '[a-z]' '[A-Z]' <oldboy.txt
I AM OLDBOY TEACHER!
I TEACH LINUX.

I LIKE BADMINTON BALL,BILLIARD BALL AND CHINESE CHESS!
MY BLOG IS HTTP://OLDBOY.BLOG.51CTO.COM
OUR SITE IS HTTP://WWW.ETIANTIAN.ORG
MY QQ NUM IS 49000448

NOT 4900000448
MY GOD ,I AM NOT OLDBEY,BUT OLDBOY!
[root@oldboyedu  ~]#

范例3: 将数字 0-9替换为a-j。(也是一一对应)

[root@oldboyedu  ~]# tr '[0-9]' '[a-j]' <oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.fbcto.com
our site is http://www.etiantian.org
my qq num is ejaaaeei

not ejaaaaaeei
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu  ~]#

范例4: 删除文件中出现oldboy中的每个字符。

[root@oldboyedu  ~]# tr -d 'oldboy' <oldboy.txt
I am  teacher!
I teach inux.

I ike amintn a,iiar a an chinese chess!
m g is http://.g.51ct.cm
ur site is http://www.etiantian.rg
m qq num is 49000448

nt 4900000448
m g ,i am nt e,ut OLDBOY!
[root@oldboyedu  ~]#

说明:凡是在文件中出现的oldby字符都会被删除,而不是仅仅删除 oldboy 字符串。

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津

Shell命令-文件及内容处理之wc,tr的更多相关文章

  1. Shell命令-文件及内容处理之more、less

    文件及内容处理 - more.less 1. more:分页显示文件内容 more命令的功能说明 more 命令类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白 ...

  2. Shell命令-文件及内容处理之cat、tac

    文件及内容处理 - cat.tac 1. cat:显示文件内容 cat命令的功能说明 cat命令用于连接多个文件并且打印到屏幕输出或重定向到指定文件中 cat命令的语法格式 cat [OPTION]. ...

  3. Shell命令-文件及内容处理之head、tail

    文件及内容处理 - head.tail 1. head:显示文件内容头部 head命令的功能说明 head 命令用于显示文件头部内容,默认执行 head 命令会输出文件开头的 10 行. head命令 ...

  4. Shell命令-文件及内容处理之cut、rev

    文件及内容处理 - cut.rev 1. cut:切割文件内容 cut命令的功能说明 cut 命令用于显示每行从开头算起num1 到 num2 的文字. cut命令的语法格式 cut [OPTION] ...

  5. Shell命令-文件及内容处理之diff、vimdiff

    文件及内容处理 - diff.vimdiff 1. diff:比较两个文件区别 diff命令的功能说明 diff命令用比较文件的差异.diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则 ...

  6. Shell命令-文件及内容处理之vi、vim

    文件及内容处理 - vi.vim 1.Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器 ...

  7. Shell命令-文件及内容处理之grep(egrep)、join

    文件及内容处理 - grep(egrep).join 1. grep(egrep):文本过滤工具 grep(egrep)命令的功能说明 grep命令是Linux系统中最重要的命令之一,其功能是从文本文 ...

  8. Shell命令-文件及内容处理之split、paste

    文件及内容处理 - split.paste 1. split:分割文件为不同的小片段 split命令的功能说明 split 命令用于将一个文件分割成数个.该指令将大文件分割成较小的文件,在默认情况下将 ...

  9. Shell命令-文件及内容处理之sort、uniq

    文件及内容处理 - sort.unip 1. sort:对文件的文本内容排序 sort命令的功能说明 sort 命令用于将文本文件内容加以排序.sort 可针对文本文件的内容,以行为单位来排序. so ...

随机推荐

  1. 零基础学Python--------进阶篇 第6章 函数

    第6章 函数 6.1函数的创建和调用 提到函数,大家会想到数学函数吧,函数是数学最重要的一个模块,贯穿整个数学学习过程.在Python中,函数的应用非常广泛.在前面我们已经多次接触过函数.例如,用于输 ...

  2. XSS Challenges

    平台: http://www.zixem.altervista.org/XSS/ level1: Payload: http://www.zixem.altervista.org/XSS/1.php? ...

  3. 浏览器登录Dynamics 365 CE没毛病,程序连接却报错。

    摘要: 微软动态CRM专家罗勇 ,回复308或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 今天我做实验 ...

  4. 使用 empApi 组件实现 Change Data Capture 功能

    Change Data Capture 功能是从 Winter '19 版本开始正式启用的功能. 它是基于"发布-订阅"模式设计,可以将 Salesforce 中记录的改变自动推送 ...

  5. 总结:BGP和静态路由并存,达到故障自动倒换的目的。

    总体结论: 在上云的场景中,客户需要本地数据中心到云上VPC,出现网络故障时做到自动倒换,保证业务不中断. 一.客户需求 1.客户有总厂.分厂.总厂是通过专线和VPN连接上云,分厂是通过专线先连接到总 ...

  6. Git:八、Git自定义:忽略特殊文件&配置别名

    1..gitignore配置文件 1)防止加入Git或输入git status时显示,需要让Git忽略的文件: 程序编译生成的非原代码的文件 存放密码的文件 2)配置文件:.gitignore Git ...

  7. 宇宙第一开发工具:vs2019 开发Python

    1.初步认识 现在人工智能逐步进入人们的视野,人工智能开发也越来越火. 而python语言,被作为大数据库开发的首选语言之一~.前一段时间vs2019预览版发布.相信不少小伙伴已经开始使用,vs201 ...

  8. js实现表格无缝滚动效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. VS2017在线安装包下载

    VS2017个人免费版即社区官方下载地址为:https://download.microsoft.com/download/D/1/4/D142F7E7-4D7E-4F3B-A399-5BACA91E ...

  10. SQLServer的三种Recovery Model

    SQL Server恢复模式的三种类型的比较 此文章主要向大家讲述的是SQL Server恢复模式,我们主要介绍的是三种恢复模式,其中包括简单SQL Server数据库的恢复模式.完整恢复模式与大容量 ...