Linux grep技巧 删除含有指定关键词的行,创建新文件

一. 需求

⏹有如下文件,现要求


二. grep -v 排除

⏹方式1

  • -E:用来指定正则表达式
  • -v:用来排除
bash 复制代码
grep -E "xuecheng|192.168.1.1" -v ./hosts
bash 复制代码
# 查看hosts文件内容
fengyehong@ubuntu:~/jmw_work_space/20240625$ cat hosts
127.0.0.1 www.xuecheng.com
127.0.0.1 img.xuecheng.com
192.168.1.1 www.test.com
127.0.0.1 video.xuecheng.com
127.0.0.1 teacher.xuecheng.com
127.0.0.1 system.xuecheng.com
127.0.0.1 ucenter.xuecheng.com
127.0.0.1 license.sublimehq.com

# 排除指定的行
fengyehong@ubuntu:~/jmw_work_space/20240625$ grep -E "xuecheng|192.168.1.1" -v ./hosts
127.0.0.1 license.sublimehq.com

⏹方式2

bash 复制代码
grep -v "xuecheng" ./hosts | grep -v "192.168.1.1"
bash 复制代码
# 查看hosts文件内容
fengyehong@ubuntu:~/jmw_work_space/20240625$ cat hosts
127.0.0.1 www.xuecheng.com
127.0.0.1 img.xuecheng.com
192.168.1.1 www.test.com
127.0.0.1 video.xuecheng.com
127.0.0.1 teacher.xuecheng.com
127.0.0.1 system.xuecheng.com
127.0.0.1 ucenter.xuecheng.com
127.0.0.1 license.sublimehq.com

# 先使用-v排除掉xuecheng关键字之后,再使用-v排除192.168.1.1关键字
fengyehong@ubuntu:~/jmw_work_space/20240625$ grep -v "xuecheng" ./hosts | grep -v "192.168.1.1"
127.0.0.1 license.sublimehq.com

三. 创建新文件

bash 复制代码
grep -v "xuecheng" ./hosts | grep -v "192.168.1.1" > new_hosts
相关推荐
Zfox_几秒前
【Linux】进程信号全攻略(二)
linux·运维·c语言·c++
安於宿命5 分钟前
【Linux】简易版shell
linux·运维·服务器
追梦不止~12 分钟前
Docker常用命令+详解
运维·docker·容器
黑龙江亿林等保16 分钟前
深入探索哈尔滨二级等保下的负载均衡SLB及其核心算法
运维·算法·负载均衡
黄小耶@16 分钟前
linux常见命令
linux·运维·服务器
叫我龙翔18 分钟前
【计网】实现reactor反应堆模型 --- 框架搭建
linux·运维·网络
古驿幽情20 分钟前
CentOS AppStream 8 手动更新 yum源
linux·运维·centos·yum
BillKu21 分钟前
Linux(CentOS)安装 Nginx
linux·运维·nginx·centos
BillKu24 分钟前
Linux(CentOS)yum update -y 事故
linux·运维·centos
a2663789629 分钟前
解决yum命令报错“Could not resolve host: mirrorlist.centos.org
linux·运维·centos