bash - 从包含子字符串的文件中删除行
问题描述
我需要从文件中删除一些行。具体来说,我需要删除所有包含子字符串的行:export JAVA_HOME=/usr/lib/jvm
我试过了:
sed -i -e "/export JAVA_HOME=\"\/usr\/lib\/jvm*/d" file
和
sed -i -e "/export JAVA_HOME=\"\/usr\/lib\/jvm/d" file
但是那些并没有删除我在其中的行file
:
export JAVA_HOME=/usr/lib/jvm/openjdk-8-amd64/jre/
请问有什么帮助吗?谢谢
解决方案
从您的模式中删除引号,因为它没有出现在您要删除的行中:
sed -i -e "/export JAVA_HOME=\"\/usr\/lib\/jvm/d" file
# ^^ remove this
推荐阅读
- coordinates - 如何计算 ECEF(地心)框架中的太阳坐标?
- php - Laravel 回声离开不会触发事件
- javascript - Angular Datatables:如何动态地将一个键值对附加到每个 JSON 对象
- c++ - 为什么调用 WSASocket() vs socket() 会导致发送阻塞?
- ansible - 检测从 Ansible 调用 Certbot 时是否进行了更改
- amazon-s3 - 当 zlib.gunzipping 从 s3 存储桶中的非常大的文件时意外结束
- android - 在后台启动第二个 Android Activity 以加载,然后再放到前台
- java - 在 Java 中格式化 LocalDate:“2020 年 3 月 26 日”的模式是什么
- kotlin - Kotlin 通用类使用继承
- c# - 存储的密码是否会破坏 ASP.NET CompareValidator?