在维护Linux操作系统的过程中,除了查看文件内容以外.有时还需要对文件内容进行统计,或老本按符合条件的文本内容。下面将学习统计和检索文件内容的两个命令工具。
1、wc命令 统计文件内容中 的单词数量(Word Count)、 行数等信息
wc命令用于统计文件内容中包含的行数.单词数量.字节数等信息,使用文件名作为参数.可以同时统计多个文件。较常用的选项如下所述。
- -c:统计文件内容中的字节数。
- -l:统计文件内容中的行数。
- -w:统计文件内容中的单词个数(以空格或制表位作为分隔)。
当文件的行数、单词数或字节数具有特定的意义时,使用wc命令可以巧妙地获得一些 特殊信息。例如,Linux操作系统中的用户账号数据保存在/etc/passwd文件中,其中每一 行记录对应一个用户则以下操作可以统计出当前 Linux操作系统中拥有的用户账号数量, 具体操作如下:
[root@blab ~]# wc -l /etc/passwd
44 /etc/passwd
若将wc命令与管道符号一起使用,还可以对命令输出结果进行统计。例如,若要统计/etc/目录下共包含多少个扩展名为“.conf" 的文件,可以先通过"find /etc -name "*. confn” 命令找出符合条件的文件位置,由于find 命令的输出结果也是每行一个文件记录,因此只需结合管道符号执行"WC -|”操作即可得出符合条件的文件数量,具体操作如下:
[root@blab ~]# find /etc/ -name "*.conf" | wc -l
450
使用不带任何选项的wc命令时,默认将统计指定文件的字节数,行数.单词个数(相当于同时使用"-c”"-1”°-w"三个选项).例如,以下操作统计出/etc/hosts文件中共包含2行,10个单词、158字节的内容.然后通过cat /etc/hosts"命令列出文件内容, 可核对统计结果是否正确
[root@blab ~]# wc /etc/hosts
2 10 158 /etc/hosts
2、grep命令检索、 过滤文件内容
grep命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式(例如,” "word"表示以word开头,words" 表示以 word结尾$”表示空行).使用grep命令的基本格式如下:
grep [选项]... 查找条件 目标文件
grep命令较常用到的几个选项如下.
- -i:查找内容时忽略大小写(Ignore Case).
- -v:反转查找(nvert). 即输出与查找条件不相符的行,
例如。执行” grep "ftp" /etc/passwd命令,可以在账号文件/etc/passwd中查找包含ftp" 字符串的行,实际上输出了名为ftp的用户账号的信息.具体操作如下:
[root@blab ~]# grep "ftp" /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
在维护Linux操作系统的过程中,经常会遇到包含大量内容的配置文件.而其中往往包含了许多空行和以” #”开头的注释文字,当只需要分析其中的有效配置信息时,这些空行和注释文字的存在不利于快速浏览.使用grep命令可以过滤掉这些无关信息。例如,以下操作可以显示/etc/yum. com文件中以#” 开头的行和空行以外的内容。
[root@blab ~]# grep -v "^#" /etc/yum.conf | grep -v "^$"
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release