首页 > 解决方案 > 使用 sed 删除两个字符之间的所有内容

问题描述

我想删除包括它们之间的任何字符

<img src=\"/wp-content/uploads/9e580e68ed249dec8fc0e668da78d170.jpg\" / hspace=\"5\" vspace=\"0\" align=\"left\">

我在尝试

sed -i -e 's/<img src.*align=\\"left\\">//g' file

标签: sed

解决方案


你没有说你正在使用什么版本的sed,或者什么 shell。

使用 GNU sedbash,您的尝试几乎就在那里。尝试:

  sed -i 's/<img src[^>]*align=\\"left\\">//g' file

解释:

  • s/<img src[^>]*align=\\"left\\">/搜索<img src_STUFF_align=\"left\">,其中_STUFF_不能包含任何>
  • //并将其替换为空
  • /g并继续
  • -i并修改文件

我相信这应该适用于大多数版本的sed(除了-i)。


推荐阅读