sed多行替换问题

| 我遇到了sed更换问题,希望你们中的一个能够帮助我。我确定我缺少一些简单的东西。 所以我有一个包含文本和引号的文件。引号本身可以在一行上,也可以跨多行。我希望报价单本身换行。作为示例,这里是文件的示例
And he said \"This too
   shall pass\"
我需要将其更改为
And he said 
\"This too shall pass\"
我尝试了以下sed,但无法正常工作-似乎匹配,但无法换新线
/\"This/ {
    N
    s/\"This *\\n*too *\\n*shall *\\n*pass\"/\\n\"This too shall pass\"/
}
    
已邀请:
        尝试用\\和一个明确的新行替换\“ \\ n \”;如下所示-
/\"This/ {
N
s/\"This *\\n*too *\\n*shall *\\n*pass\"/\\
\"This too shall pass\"/
}
    
        首先加入所有行,然后在第一个
\"
处插入换行符,然后通过
tr
进行单行分隔所有内容(对
tr
部分不满意...)
$ sed -e :a -e \'$!N; s/\\n/ /; ta ; s/\"/\\n\"/\' multiline_input | tr -s \" \"
And he said 
\"This too shall pass\"
    
        
perl -0777 -ne \'s/\\s+/ /g;s/\"/\\n\"/;print \"$_\\n\"\'
    

要回复问题请先登录注册