sed删除匹配正则表达式的行

简介: sed删除匹配正则表达式的行

在Linux环境下,如果你想使用sed命令删除文件中匹配某个正则表达式的行,可以采用如下命令格式:

sed '/regex_pattern/d' input_file > output_file

这里,

  • /regex_pattern/ 是你要匹配的正则表达式模式。
  • dsed中的动作命令,表示删除(delete)。

当执行此命令时,sed会逐行读取input_file文件的内容,并检查每一行是否与regex_pattern相匹配。若某行匹配成功,则该行会被删除,不包含匹配行的结果将输出到output_file中(或者直接覆盖原文件,通过追加重定向符号>input_file实现就地修改,但通常不推荐这样做以免意外丢失数据)。

如果你想要在内存中处理且不创建新的输出文件,可以使用 -i 选项来直接编辑原文件:

sed -i '/regex_pattern/d' input_file

注意

  • -i 参数后面可以直接跟一个可选的备份扩展名(如 .bak),这样会在编辑文件前先备份原始文件,例如:sed -i.bak '/regex_pattern/d' input_file
  • 正则表达式应当根据实际需求编写,确保其能匹配到你希望删除的行的内容。

例如,要删除包含单词 "example" 的所有行:

sed '/example/d' input.txt > output.txt
目录
相关文章
|
6月前
|
机器学习/深度学习 Shell 开发工具
正则表达式 与文本三剑客(sed grep awk)
正则表达式 与文本三剑客(sed grep awk)
|
6月前
|
Perl
sed删除不匹配正则表达式的行(保留匹配行)
sed删除不匹配正则表达式的行(保留匹配行)
640 2
|
机器学习/深度学习 C语言 数据安全/隐私保护
『正则表达式』概念 及在grep、awk、sed、C语言、Python中的简单应用
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式。它可以用来检查一个字符串是否符合某个规则,或者从一个字符串中提取出符合某个规则的子串。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。
|
机器学习/深度学习 Linux Perl
Linux三剑客grep、sed、awk以及正则表达式
$ 以...结尾 ^ 以...开头 . 匹配任意一个字符 \- 匹配前一个字符或子表达式任意次(例如:grep "g.*d" a.txt(过滤a.txt文件中的以g开头以d结尾*可以代表有任意多个字符或没有字符))
165 0
Linux三剑客grep、sed、awk以及正则表达式
|
5月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
54 2
|
5月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
5月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
5月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。