sed替换指定模式为NULL后删除空行的语法问题求助
Sed 替换指定模式并删除空行的正确写法
- 你之前的命令错误在于大括号的用法:sed的大括号是用来组合多个命令的,不能直接嵌套在
s命令里。正确的写法是把替换命令和删除空行命令放在大括号内,用分号分隔。 - 针对你的需求,正确的sed命令有两种写法:
写法一:分两次指定命令
sed -e 's/<"patern">//g' -e '/^$/d' file.txt
写法二:用大括号组合命令
sed '{s/<"patern">//g; /^$/d}' file.txt
命令说明:
s/<"patern">//g:全局替换所有匹配到的指定模式为空字符串/^$/d:删除替换后变成完全空的行(^$匹配空行)
如果你的模式包含正则元字符(比如.、*、+等),需要在这些字符前加反斜杠\进行转义,避免被sed当作正则语法解析。
内容的提问来源于stack exchange,提问作者kevin
相关产品推荐
相关产品推荐

