find、sed 命令用法示例

1、查找 /etc 目录下大于 1M 且类型为普通文件的所有文件。
# -type 过滤文件类型,f 表示普通文件
# -size 过滤文件大小,+1M 表示大于1M
[yinxd@centos7 ~]$ sudo find /etc -type f -size +1M
/etc/udev/hwdb.bin
/etc/selinux/targeted/contexts/files/file_contexts.bin
/etc/selinux/targeted/policy/policy.31
/etc/selinux/targeted/active/policy.kern
/etc/selinux/targeted/active/policy.linked
/etc/brltty/zh-tw.ctb

# 用ls -l 查看过滤出来的文件大小,可以看出过滤出的文件均大于1M
[yinxd@centos7 ~]$ sudo find /etc -type f -size +1M | xargs sudo ls -lh
-rw-r--r--. 1 root root 1.4M Apr 11  2018 /etc/brltty/zh-tw.ctb
-rw-------. 1 root root 3.7M Apr 21 09:51 /etc/selinux/targeted/active/policy.kern
-rw-------. 1 root root 3.7M Apr 21 09:51 /etc/selinux/targeted/active/policy.linked
-rw-r--r--. 1 root root 1.4M Apr 21 09:51 /etc/selinux/targeted/contexts/files/file_contexts.bin
-rw-r--r--. 1 root root 3.7M Apr 21 09:51 /etc/selinux/targeted/policy/policy.31
-r--r--r--. 1 root root 8.0M Apr 21 09:58 /etc/udev/hwdb.bin
2、打包 /etc/ 目录下面所有 conf 结尾的文件,压缩包名称为当天的时间,并拷贝到 /usr/local/src 目录备份。
# -zcvf 从指定文件创新新的文件包并压缩、显示执行过程
[yinxd@centos7 ~]$ sudo tar -zcvf /usr/local/src/`date +'%F_%T'`.tar.gz /etc/*.conf
[sudo] password for yinxd: 
tar: Removing leading `/' from member names
/etc/asound.conf
/etc/autofs.conf
/etc/autofs_ldap_auth.conf
/etc/brltty.conf
/etc/cgconfig.conf
/etc/cgrules.conf
/etc/cgsnapshot_blacklist.conf
/etc/chrony.conf
/etc/dleyna-server-service.conf
/etc/dnsmasq.conf
/etc/dracut.conf
/etc/e2fsck.conf
/etc/fprintd.conf
/etc/fuse.conf
/etc/GeoIP.conf
/etc/host.conf
/etc/idmapd.conf
/etc/ipsec.conf
/etc/kdump.conf
/etc/krb5.conf
/etc/ksmtuned.conf
/etc/ld.so.conf
/etc/libaudit.conf
/etc/libuser.conf
/etc/locale.conf
/etc/logrotate.conf
/etc/man_db.conf
/etc/mke2fs.conf
/etc/mtools.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/nsswitch.conf
/etc/ntp.conf
/etc/numad.conf
/etc/oddjobd.conf
/etc/pbm2ppa.conf
/etc/pnm2ppa.conf
/etc/radvd.conf
/etc/request-key.conf
/etc/resolv.conf
/etc/rsyncd.conf
/etc/rsyslog.conf
/etc/sestatus.conf
/etc/sos.conf
/etc/sudo.conf
/etc/sudo-ldap.conf
/etc/sysctl.conf
/etc/tcsd.conf
/etc/updatedb.conf
/etc/usb_modeswitch.conf
/etc/vconsole.conf
/etc/wvdial.conf
/etc/yum.conf

# 查看压缩文件信息
[yinxd@centos7 ~]$ ll /usr/local/src
total 52
-rw-r--r--. 1 root root 50116 May 13 10:47 2020-05-13_10:47:02.tar.gz
3、利用 sed 取出 ifconfig 命令中本机的 IPv4 地址。
# 先用 ifconfig 查看 eth1 的信息,可以看到IP地址是192.168.73.128
[yinxd@centos7 etc]$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.73.128  netmask 255.255.255.0  broadcast 192.168.73.255
        inet6 fe80::c1e7:28e:85d3:e094  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:81:47:40  txqueuelen 1000  (Ethernet)
        RX packets 26  bytes 3919 (3.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 33  bytes 5611 (5.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 用 sed 命令取 IP
#	-r 使用扩展正则表达式
#	-n 关闭默认显示
#	s/// 搜索替代
#	\1	后项引用,显示搜索条件中第一个()内的值
#	p 显示搜索到的内容
[yinxd@centos7 etc]$ ifconfig eth1 | sed -rn 's/^.*inet ([0-9.]{7,15}).*$/\1/p'
192.168.73.128
4、删除 /etc/fstab 文件中所有以 # 开头,后面至少跟一个空白字符的行的行首的 # 和空白字符。
# 查看 /etc/fstab 的内容
[yinxd@centos7 etc]$ cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Apr 21 09:35:44 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_centos7-root /                       xfs     defaults        0 0
UUID=f7cd1056-9888-4bfd-ae48-0eccace210e3 /boot                   xfs     defaults        0 0
/dev/mapper/centos_centos7-home /home                   xfs     defaults        0 0
/dev/mapper/centos_centos7-swap swap                    swap    defaults        0 0

# 用 sed 删除匹配的行
#	-i 处理后的结果写入原文件
[yinxd@centos7 etc]$ sudo sed -ri '/^#[[:space:]]+.*$/d' /etc/fstab

# 再次查看 /etc/fstab 的内容,确认符合条件的行已被删除
[yinxd@centos7 etc]$ cat /etc/fstab

#
#
#
/dev/mapper/centos_centos7-root /                       xfs     defaults        0 0
UUID=f7cd1056-9888-4bfd-ae48-0eccace210e3 /boot                   xfs     defaults        0 0
/dev/mapper/centos_centos7-home /home                   xfs     defaults        0 0
/dev/mapper/centos_centos7-swap swap                    swap    defaults        0 0
5、处理 /etc/fstab 路径,使用 sed 命令取出其目录名和基名。
# 取目录名
[yinxd@centos7 etc]$ echo /etc/fstab | sed -rn 's/^(.*\/)[[:alpha:]]+$/\1/p'
/etc/

# 取基名
[yinxd@centos7 etc]$ echo /etc/fstab | sed -rn 's/^.*\/([[:alpha:]]+)$/\1/p'
fstab
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值