5、文件查找与压缩、文本处理工具sed

1、查找/etc目录下大于1M且类型为普通文件的所有文件

find /etc/ -size +1M -type f | xargs ls -lSh

结果:

[root@centos7 etc]# find /etc/ -size +1M -type f | xargs ls -lSh
-r--r--r--. 1 root root 8.0M Feb 21 15:40 /etc/udev/hwdb.bin
-rw-------. 1 root root 3.7M Feb 21 15:33 /etc/selinux/targeted/active/policy.kern
-rw-------. 1 root root 3.7M Feb 21 15:33 /etc/selinux/targeted/active/policy.linked
-rw-r--r--. 1 root root 3.7M Feb 21 15:33 /etc/selinux/targeted/policy/policy.31
-rw-r--r--. 1 root root 1.4M Feb 21 15:33 /etc/selinux/targeted/contexts/files/file_contexts.bin
-rw-r--r--. 1 root root 1.4M Apr 11  2018 /etc/brltty/zh-tw.ctb

2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。

find /etc/ -type f -name "*.conf"|xargs tar -cvf /usr/local/src/`date +%F`.tar

结果:

[root@centos7 data]# ll /usr/local/src/
total 1660
-rw-r--r-- 1 root root 1699840 May 13 21:19 2020-05-13.tar

3、利用sed 取出ifconfig命令中本机的IPv4地址

ifconfig ens33|sed -n '2p'|sed -r 's/.*inet (.*) netmask.*/\1/'

结果:

[root@centos7 data]# ifconfig ens33|sed -n '2p'|sed -r 's/.*inet (.*) netmask.*/\1/'
192.168.45.128 

4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed -ri 's/^# +(.*)/\1/g' /etc/fstab

结果:

执行前:

[root@centos7 data]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Fri Feb 21 14:57:19 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
#
UUID=8ef35ceb-2f89-4210-958a-00446c776bb7 /                       xfs     defaults        0 0
UUID=05813723-0404-4ec7-9c83-6235212a4ff8 /boot                   xfs     defaults        0 0
UUID=4b0e9cd7-c239-4a9c-8da7-a244bb39b492 /data                   xfs     defaults        0 0
UUID=226e7fb5-19e8-45b2-aa9e-5d289e6b899d swap                    swap    defaults        0 0

执行:

[root@centos7 data]# sed -ri 's/^# +(.*)/\1/g' /etc/fstab

执行后:

[root@centos7 data]# cat /etc/fstab

#
/etc/fstab
Created by anaconda on Fri Feb 21 14:57:19 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
#
UUID=8ef35ceb-2f89-4210-958a-00446c776bb7 /                       xfs     defaults        0 0
UUID=05813723-0404-4ec7-9c83-6235212a4ff8 /boot                   xfs     defaults        0 0
UUID=4b0e9cd7-c239-4a9c-8da7-a244bb39b492 /data                   xfs     defaults        0 0
UUID=226e7fb5-19e8-45b2-aa9e-5d289e6b899d swap                    swap    defaults        0 0

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
获取目录名:

echo "/etc/fstab"|sed -r 's/(.*)\/(.*)/\1/'

获取基名:

echo "/etc/fstab"|sed -r 's/(.*)\/(.*)/\2/'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容