博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell命令-文件及内容处理之wc,tr
阅读量:5321 次
发布时间:2019-06-14

本文共 6143 字,大约阅读时间需要 20 分钟。

文件及内容处理 - 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 testfileLinux网络变得越来越普遍,但是精简往往被忽视了  问题。不幸的是,在今天的环境中,所有网络都是潜在的黑客目标,  从秘密军事研究网络到小型家庭局域网。  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/passwdcat /etc/passwd|wc -lcat /etc/passwd|wc -L--------------------------------------------------------------==>源文件内容<==--------------------------------------------------------------root@nfs01 ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinabrt:x:173:173::/etc/abrt:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinoldboy:x:1000:1000::/home/oldboy:/bin/bashntp:x:38:38::/etc/ntp:/sbin/nologin--------------------------------------------------------------==>统计行数<==--------------------------------------------------------------[root@nfs01 ~]# cat /etc/passwd|wc -l22--------------------------------------------------------------==>统计最长<==--------------------------------------------------------------[root@nfs01 ~]# cat /etc/passwd|wc -L99

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.txtI am oldboy teacher!I teach linux.I like badminton ball,billiard ball and chinese chess!my blog is http://oldboy.blog.51cto.comour site is http://www.etiantian.orgmy qq num is 49000448not 4900000448my god ,i am not oldbey,but OLDBOY!--------------------------------------------------------------==>演示如下<==--------------------------------------------------------------[root@oldboyedu  ~]# cat oldboy.txtI am oldboy teacher!I teach linux.I like badminton ball,billiard ball and chinese chess!my blog is http://oldboy.blog.51cto.comour site is http://www.etiantian.orgmy qq num is 49000448not 4900000448my 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.zomour site is http://www.etixntixn.orgmy qq num is 49000448not 4900000448my god ,i xm not oldyey,yut OLDBOY![root@oldboyedu  ~]#

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

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

[root@oldboyedu  ~]# tr '[a-z]' '[A-Z]' 

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

[root@oldboyedu  ~]# tr '[0-9]' '[a-j]' 

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

[root@oldboyedu  ~]# tr -d 'oldboy' 

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

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

转载于:https://www.cnblogs.com/wjcLinux/p/10716556.html

你可能感兴趣的文章
10.17动手动脑
查看>>
WPF中Image显示本地图片
查看>>
php仿阿里巴巴,php实现的仿阿里巴巴实现同类产品翻页
查看>>
面对问题,如何去分析?(日报问题)
查看>>
nodejs vs python
查看>>
poj-1410 Intersection
查看>>
Java多线程基础(一)
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>