Unix 使用sed删除特殊单词

Unix 使用sed删除特殊单词,unix,sed,Unix,Sed,我想使用sed删除这一行的所有事件当且仅当它是这一行时 <ab></ab> 这是我的临时shell脚本: #!/bin/sh sed -e '/td/!d' | sed '/<ab></ab>/d' #/垃圾箱/垃圾箱 sed-e'/td/!d'| sed'//d' 看起来我们这里有几个问题。第一个是关闭标记中的/sed使用它来分隔命令的不同部分。幸运的是,我们所要做的就是用\逃避它。尝试: sed '/<ab><\/ab&g

我想使用sed删除这一行的所有事件当且仅当它是这一行时

<ab></ab>
这是我的临时shell脚本:

#!/bin/sh
sed -e '/td/!d' | sed '/<ab></ab>/d'
#/垃圾箱/垃圾箱
sed-e'/td/!d'| sed'//d'

看起来我们这里有几个问题。第一个是关闭标记中的
/
sed
使用它来分隔命令的不同部分。幸运的是,我们所要做的就是用
\
逃避它。尝试:

sed '/<ab><\/ab>/d'
或者,要就地编辑文件,您可以执行以下操作:

sed -i -e '/<ab><\/ab>/d' input.html
编辑

在注释中,您提到要删除只包含
而不包含其他内容的行。要做到这一点,你需要做所谓的锚定比赛。
^
字符表示用于锚定的行的开头,
$
表示行的结尾

sed '/^<\/ab>$/d' input.html
sed'/^$/d'input.html
这将只匹配包含(字面上)任何内容的行,并删除该行。如果要匹配包含空格但除
之外没有文本的行:

sed'/^[:blank:][]*[:blank:][]*$/d'input.html

[[:blank:][]*
匹配“0个或多个空白字符”,称为“POSIX括号表达式”。

这里似乎有几个问题。第一个是关闭标记中的
/
sed
使用它来分隔命令的不同部分。幸运的是,我们所要做的就是用
\
逃避它。尝试:

sed '/<ab><\/ab>/d'
或者,要就地编辑文件,您可以执行以下操作:

sed -i -e '/<ab><\/ab>/d' input.html
编辑

在注释中,您提到要删除只包含
而不包含其他内容的行。要做到这一点,你需要做所谓的锚定比赛。
^
字符表示用于锚定的行的开头,
$
表示行的结尾

sed '/^<\/ab>$/d' input.html
sed'/^$/d'input.html
这将只匹配包含(字面上)任何内容的行,并删除该行。如果要匹配包含空格但除
之外没有文本的行:

sed'/^[:blank:][]*[:blank:][]*$/d'input.html

[[:blank:][]*
匹配“0个或多个空白字符”,称为“POSIX括号表达式”。

您使用的确切命令是什么?@Will我将以名为temp的shell脚本的形式编写此脚本,并将其编写为:cat foobar.html |/temp@Will这是我的临时shell脚本:#/bin/sh sed-e'/td/!d'| sed'//d'明白了,谢谢!我的回答应该能解释一切。还有,你说这是UNIX;你知道什么品种吗?这是Linux、FreeBSD还是某种类型的实际UNIX?您能运行
uname-a
吗?不管是哪种方式,我下面的答案对于任何POSIX
sed
都应该可以正常工作。您使用的确切命令可能存在重复?我将以一个名为temp的shell脚本的形式编写它,并将其编写为:cat foobar.html |/temp@Will这是我的临时shell脚本:#/bin/sh sed-e'/td/!d'| sed'//d'明白了,谢谢!我的回答应该能解释一切。还有,你说这是UNIX;你知道什么品种吗?这是Linux、FreeBSD还是某种类型的实际UNIX?您能运行
uname-a
吗?无论哪种方式,我下面的答案对于任何POSIX
sed
,都应该能正常工作。谢谢你,这可能是重复的!但是为什么如果我想删除,我尝试了这个,但它不起作用:sed'//d'您想删除包含
的整行还是只删除
本身
sed'//d'
将删除任何包含
的行。我想删除整行,当且仅当它包含,无更多,无更少谢谢!但是为什么如果我想删除,我尝试了这个,但它不起作用:sed'//d'您想删除包含
的整行还是只删除
本身
sed'//d'
将删除任何包含
的行。我想删除整行,当且仅当它包含,不多也不少
sed -i -e '/<ab><\/ab>/d' input.html
sed '\@<ab></ab>@d' input.html
sed '/^<\/ab>$/d' input.html
sed '/^[[:blank:]]*<\/ab>[[:blank:]]*$/d' input.html