【Linux学习笔记】9:字符串搜索命令grep

时间:2021-02-28 17:02:00

grep搜索字符串

用于在文件中搜索符合条件的字符串所在行。

grep [-i -v] 字符串 文件名

选项:-i不区分大小写,-v排除指定字符串(不包含它的)。

如在安装日志中查找有”size”的行(我这个系统没有手动分区,这个结果和视频里那种手动分区的会不同):

[root@bogon ~]# grep "size" anaconda-ks.cfg 
#volgroup VolGroup --pesize=4096 pv.008002
#logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=4032 --maxsize=4032
#part /boot --fstype=ext4 --size=500
#part pv.008002 --grow --size=1

又如查找不包含”size”的行:

[root@bogon ~]# grep -v "size" anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang zh_CN.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$.NzYMwlF4dkuqqEZ$D3Q4PYMZrA9ReI7PwSb5r19VdbAMkdE.cEW0gA8NUwq/dhyQQPUZ2EAbs2e4XUY5ofyW80F0qwnacQJvIQ.OU.
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --all --drives=sda




%packages
@base
@chinese-support
@client-mgmt-tools
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
pax
python-dmidecode
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end

注意find匹配的是文件,但是grep匹配的是文件中的行,只要包含有那个字符串,就会把这一行列出来。find可以使用通配符,grep可以使用正则表达式,从而进行更复杂的匹配。